IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   TCL Scriptler (https://www.ircforumlari.net/tcl-scriptler/)
-   -   Not sistemi tcl (https://www.ircforumlari.net/tcl-scriptler/534274-not-sistemi-tcl.html)

saywhat 11 Haziran 2013 23:41

Not sistemi tcl
 
kod belli bir kişiye bot aracılığıyla not göndermek içindir.
MemoServ gibi çalışır.eggdrop notes modülünü kullanır.
botunuzun kullanıcı listesinde ekli olanlar faydalanabilir.
kod açıklamalarını kullanmadan önce okuyunuz.

komutlar:

.ekle rumuz notunuz buraya gelecek.( belirlediğiniz rumuza notunuzu gönderir)
.sil not-no (notunuzu siler not nosu ile)
.liste (varsa notları listeler)
.not [notunuz olup olmadığını kontrol eder. varsa şu kadar notunuz var der)
Kod:

# kodu kullanabilmek için notes modulü yüklü olmalı.bu modülle ilgili ayarlar .conf üzerinde olmalı.
# hangi kanal üstünde komutlar kullanılmak isteniyorsa: .chanset #kanal +usenotes
# not sistemi botun kullanıcı siteminde ekli olan kullanıcılar tarafından, yani
# bot tarafından tanınan kullanıcılar tarafından kullanılabilir.
# kullanıcı eklemek için: .+user rumuz hostu
# hostmaskı değişirse bot kullanıcıyı tanıyamayabilir. bu durumda yeni değişen host:
# .+host rumuz  yeni/diğer-hostmask
# botun kullanıcı dosyasına eklediğiniz bu kullanıcı için flag eklemek için:
# .chattr rumuz +/-flag 
# belli bir kanal üstünde kullanıcı flagı eklemek:
# .chattr rumuz +/-flag #kanal
# örnek: .chattr ayshe f|o #kanalim
# yukardaki örneğin anlamı : kullanıcı ayshe #kanalim'da kanal opu,global(botun olduğu kanallar) genelinde arkadaş.
# eggdrop kullanıcı flag listesi:  [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
# .help +user - .help +host - .help chattr
# notes modulü ayarları hakkında: .conf üzerinde loadmodule notes ile modül yüklenmeli.
# set notefile "LamestBot.notes" : notların saklandığı dosya adı.
# set max-notes 50 :herbir kullanıcı için saklanacak maksimum not adeti
# set note-life 60 : notlar teslim edilene dek en çok kaç "gün" saklanmalı.
# set allow-fwd 0 : notlar başka bir hesabınıza yönlendirilsin mi(varsa) 0:hayır 1:evet
# set notify-users 0 :ayar 1 olursa not gönderilen kişiye notunuz var uyarısı saatte bir yapılır.(notice olarak)
# set notify-onjoin 1 :not gönderilen kişi giriş yaptığında notun var bildirisi yapılır (notice olarak)
# kod yapımcısı : speechles (Ukiah-California/USA): yapım tarihi : 10.06.2013
bind pub - .not notes::total
bind pub - .liste notes::list
bind pub - .sil notes::erase
bind pub - .ekle notes::store
setudef flag usenotes
namespace eval notes {
 proc total {n u h c t} {
  if {![channel get $c usenotes]} { return }
  set total[listnotes $h -]
  switch -- $total {
  -1 { putserv "privmsg $c :$n, bot'un kullanıcı listesinde yoksunuz.bu nedenle bu sistemi kullanamazsınız." }
  -2 { putserv "privmsg $c :$n, not dosyası hatası.. Lütfen $::owner ile iletişime geçin!" }
  0  { putserv "privmsg $c :$n, notunuz yok." }
  default  {
    set out "privmsg $c :$n, hafızamda [llength $total] adet notunuz var."
    if {[llength $total] > 0} { append out " kullanım: .liste ile bunları görebilirsiniz." }
    putserv "$out"
  }
  }
 }
 proc list {n u h c t} {
  if {![channel get $c usenotes]} { return }
  if {![string length [string trim $t]]} { set t "-" }
  set total[listnotes $h $t]
  switch -- $total {
  -1 { putserv "privmsg $c :$n, bot'un kullanıcı listesinde yoksunuz.bu nedenle bu sistemi kullanamazsınız." }
  -2 { putserv "privmsg $c :$n, not dosyası hatası.. Lütfen $::owner ile iletişime geçin!" }
  0  { putserv "privmsg $c :$n, notunuz yok. ( $t )" }
  default {
    if {[llength $total] < 1} {
    putserv "privmsg $c :$n, listemde notunuz yok."
    return
    }
    foreach row $total {
    foreach {from timestamp text} [lindex [notes $h $row] 0] { break }
    putserv "privmsg $c :$n, $row) <$from> $text ( [duration [expr {[clock seconds] - $timestamp }]] evvel eklenmiş )"
    }
  }
  }
 }
 proc store {n u h c t} {
  if {![channel get $c usenotes]} { return }
  set target [lindex [split $t] 0]
  set note [join [lrange [split $t] 1 end]]
  if {![string length $target]} {
  putserv "privmsg $c :$n, not eklemek için bir nick belirtmelisiniz. kullanımı: $::lastbind <rumuzu> <göndermek istediğiniz not>"
  return
  }
  if {![string length $note]} {
  putserv "privmsg $c :$n, sadece rumuz değil, göndermek istediğiniz notuda yazmalısınız. kullanımı: $::lastbind <rumuzu> <göndermek istediğiniz not>"
  return
  }
  set total [storenote $h $target $note 0]
  switch -- [validuser $target] {
  1  { putserv "privmsg $c :$n, kaydedildi.notunuz $target kullanıcısına bildirilecek." }
  default { putserv "privmsg $c :$n, göndermek istediğiniz $target hatalı. böyle biri kullanıcı listemde yok!" }
  }
 }
 proc erase {n u h c t} {
  if {![channel get $c usenotes]} { return }
  if {![string length [string trim $t]]} { set t "-" }
  set total [erasenotes $h $t]
  switch -- $total {
  -1 { putserv "privmsg $c :$n, bot'un kullanıcı listesinde yoksunuz.bu nedenle bu sistemi kullanamazsınız." }
  -2 { putserv "privmsg $c :$n, not dosyası hatası.. Lütfen $::owner ile iletişime geçin!" }
  0  { putserv "privmsg $c :$n, silinecek notunuz bulunmuyor. ( $t )" }
  default { putserv "privmsg $c :$n, işlem tamam. $total adet notunuz silindi. ( $t )" }
  }
 }
}


aquabluee 12 Haziran 2013 01:47

Cevap: Not sistemi tcl
 
misal #yönetim kanalında .notekle mesaj yazıp opların bulundugu kanal #ops kanalına mesaj göndermek istiorum ama op #ops kanalına girdiginde o yazdıgım mesaj opun özeline gidecek bu sekılde nasıl yaparız pekı

saywhat 12 Haziran 2013 02:15

Cevap: Not sistemi tcl
 
botla telnet/dcc bağlantısı kurun. tabi öncelikle kod içindeki açıklamalara göre .conf üzerindeki değişiklikleri-ayarları yapıp kodu yükleyiniz. sonra telnet üzerinden yönetim kanalında kanal komutlarını kullanabilmek için : .chanset #yonetim +usenotes
komutuyla aktif edersiniz.

notu alacak kişinin botun olduğu kanallardan birinde olması ,botun o kişiye gönderilen notu iletebilmesi için yeterli.

örnek #yonetim kanalında ahmet nickine not atmak istiyorum.
bota telnet üzerinden .match * 999 komutu verdiğinizde tüm kullanıcılarını listeler.yahut .whois ahmet komutu botun o kişiyi tanıyıp tanımadığını verir.kendiniz için .whoami komutu botun sizi telnet üzerinde nasıl gördüğünü verir. neyse konuyu dağıtmayım.

bu ahmet rumuzu kulllanıcı listesinde yoksa zaten not göndermek istediğinizde bu kişiyi tanımadığını söyler. telnet üzerinden .+user ahmet olarak yahut .+user ahmet [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]* gibi yada kullanıcı eklerken bir şifrede verebiliriiz o kişiye bu şifreyi tabi o kişininde bilmesi gerekir bu ne işe yarar? o kişinin aynı nickserv'e identify etmesi gibi kendini /msg botunuz pass şifresi şeklinde tanıtıp sizin o kişi için eklediğiniz örnek .chattr ahmet f|a #ops <-- bunun anlamı ahmet'in #ops kanalında oto op alması gerektiği ve botun olduğu tüm kanallar üzerinde friend/dost-arkadaş olarak tanınması gerektiği. +f arkadaş flagı verdiğiniz kişiyi eğer .chanset * +protectfriends ayarını aktif ederseniz bot koruyacak/kollayacaktır.yani başka biri onun op'unu vs almaya kalkarsa yada banlamaya falan kalkarsa bot anında olaya müdahele edecek o kişiyi kollayacaktır.
.+user ahmet
.+host ahmet [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]*
.chattr ahmet +f

şifre verilmesi "şart" değildir.zaten şifresiz olarak eklendiğini bot belirtir.
artık ahmet'e not gönderebilirsiniz .bot ahmet nickine kanalda kanallardan birinde olsun olmasın(botun olduğu kanallar) o notu haber verir notice olarak o kişiye notunuz var der.ve kullanabileceği notes modülüne ait komutları listeler.,
o kişi /msg botunuz notes index komutuyla not/larını listeler not 1 not 2 vs.. notu okumak için o kişi /msg botunuz notes read 1 komutu verdiğinde bot kişiye aynı memo serv'in yaptığı şekilde notu-göndereni ve zamanınıyla beraber iletir. kişi not /msg botunuz notes erase 1 (burdaki 1 notun no'sudur herhangi bi no olabilir index'te listelenir notun numarası) tüm kullanabileceği komutları aynı /msg memoserv help 'te olduğu gibi bot o kişiye bildirecektir kişinin tek yapacağı kendisine gösterilen komutları kullanmak.

artı olarak o komutlarda .eğer o söz konusu kullanıcı bota şifresiz ekliyse şifre kullanmak/gimek zorunda değildir. şifre belirlenmişse bot üzerinden ancak o takdirde kullanmalıdır. :/msg botnick notes <password> index
şeklinde.

eggdrop notes modulü : [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

not : diyelimki bu ahmet tatile gitti ta haftaya dönecek.ama siz haftaya yoksunuz ama bişey söylemelisiniz ona. .ekle ahmet naber len hırt hoşgeldin
bot notunuzu ahmet için saklar ahmet haftaya sunucuya bağlanıp botun olduğu herhangi bir kanala girdiğinde bot ona notice olarak notun var kullanacağın notes modülü komutları bunlar der(notes modul komutları ingilizcedir.türkçe olabilmesi için eggdrop botunuza language klasörü içinde türkçe dil dosyaları olması gerekir. ayrıca .conf üzerinden dil seçeneği addlang "turkish" gibi belirtilmesi gerekir ki türkçe dosyalar botla beraber gelmez .bunları ya kendiniz çevirmeli yada daha evvel çevrilmişini bulmanız -aratmanız gerekir.). ahmet o komutlarla sizin bi hafta evvel attığınız notu alır okur.

aquabluee 12 Haziran 2013 02:41

Cevap: Not sistemi tcl
 
notes modulünü nasıl yukleyecegım pekı

saywhat 12 Haziran 2013 02:44

Cevap: Not sistemi tcl
 
kod içinde üstte bunları anlattım kod içindeki açıklamaları okumalısınız.

bu kod bu modüle aracılık eder/irc-kanal üstünden kullanılabilmesine olanak veriyor.ekleme-silme/listeleme vs vs işlerini halleden notes module 'ün kendisi.o nedenle yüklü olmalı ve kod içindeki açıklamalarda belirttiğim ayarları .conf içinde açıkladığım şekilde olmalı..

(bu kod, kod yazarı speechles tarafından dün sabaha karşı elden kendi kanalındaki bir arkadaşı için yapıldı.henüz kendi sitesinde dahi ekli değil bu kod.ben kendisine kodu beğendiğimi-Türkçe'ye çevirip paylaşabilir miyim ,böyle bir şeyi isteyen olmuştu" diye iznini alıp çevirip burda ,komik olacak biliyorum ama gerçek bu "net'te ilk kez" paylaştım.)

saywhat 12 Haziran 2013 08:45

Cevap: Not sistemi tcl
 
Alıntı:

aquabluee Nickli Üyeden Alıntı (Mesaj 1041309234)
misal #yönetim kanalında .notekle mesaj yazıp opların bulundugu kanal #ops kanalına mesaj göndermek istiorum ama op #ops kanalına girdiginde o yazdıgım mesaj opun özeline gidecek bu sekılde nasıl yaparız pekı

bu iş için şu konuda verdiğim kod daha uygunda olabilir. -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

saywhat 12 Haziran 2013 13:53

Cevap: Not sistemi tcl
 
botunuzun language/ klasörü içindeki notes.english.lang dosyasını txt editörünüzle açın (tercihen notepad++ yada sublime text 2 yahut programmers notepad daha iyi olabilir.) içindekileri burdaki -> [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] tercüme edilmişiyle değişip, kaydedin.
dosya adını yada .conf üzerindeki addlang "english" satırını değişmenize gerek yok.sadece değişikliği görebilmesi için botu (rehash yeterli gelmeyebilir) .restart ediverin. ÖNEMLİ : satır kaydırmamaya özen gösterin copy-paste olayında.

böylece notes modülünden gelecek içerik/yardım mesajları (komutları olmasa bile ) Türkçe olacaktır.


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 21:31.

Powered by vBulletin® Version 3.8.8 Beta 3
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk