Arkadaslar hani Radyo dinleyene +v veriliyorya ona eklenti yaptım radyo kanalında +v veriyor tessekur ediyor aynı anda dj kanalında "NİCK : Radyosunu Actı ." diye dj yi bilgilendirior . sizden dileğim bunun tam tersını nasıl yaparım ... ornegın radyosunu kapatınca kullanıcı radyo kanalında -v ye alsın Dj kanalında da "NICK : Radyosunu Kapattı" desin istiyorum ...yardımlarınızı beklıyorum Duzenledıgım kod bu :
Kod: Kodu kopyalamak için üzerine çift tıklayın!
#############################################
# radyo-yama.tcl By SaW
# Yayını dinleyene voice verir.
# yayını dinlediği için teşekkür eder..
# e-mail: Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
#############################################
# Radyo ip'sini yazınız..
set radyoip "İP"
# Radyo portunu yazınız..
set rport "port"
# Radyo şifresini yazınız..
set rsifre "sıfre"
# Radyo kanalını yazınız.. Büyük küçük harfe dikkat ediniz.
# Örnek #Radyo ile #radyo farklıdır
set rkanal "#radyo"
################################################## #############
################################################## #############
### PROCS............................................. ..........
################################################## #############
################################################## #############
bind time - "* * * * *" yenidinleyici
proc yenidinleyici {min hour day month year} {
global radyoip rsifre rport
if {[catch {set sock [socket $radyoip $rport] } sockerror]} {
putlog "error: $sockerror"
return 0
} else {
puts $sock "GET /admin.cgi?pass=$rsifre&mode=viewxml&page=0 HTTP/1.0"
puts $sock "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)"
puts $sock "Host: $radyoip"
puts $sock "Connection: close"
puts $sock ""
flush $sock
while {[eof $sock] != 1} {
set bl [gets $sock]
if { [string first "standalone" $bl] != -1 } {
set voicevr [string range $bl [shrink + 11 "<LISTENERS>" 0 $bl] [shrink - 1 "</LISTENERS>" 0 $bl]]
}
}
close $sock
}
set voicevr [temiz $voicevr]
set deger 0
set ::rawcount 0
set ipler ""
bind raw - 352 voysver
foreach i $voicevr {
if {[regexp {^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$} [lindex $voicevr $deger]]} {
incr ::rawcount
lappend ipler "[lindex $voicevr $deger] "
}
incr deger
}
set ydeger 0
foreach j $ipler {
putquick "who +i [lindex $ipler $ydeger]"
incr ydeger
}
}
proc shrink { calc number string start bl} { return [expr [string first "$string" $bl $start] $calc $number] }
proc voysver {from keyword arg} {
global rkanal
if {![isvoice [lindex $arg 5] $rkanal]} {
putquick "operserv mode $rkanal +v [lindex $arg 5]"
putquick "privmsg $rkanal \002[lindex $arg 5]: \002 Radyo yayınımızı dinlediğiniz için teşekkürler.."
putquick "privmsg #dj \002[lindex $arg 5]: \002 Radyosunu Actı ."
}
}
bind raw - 315 countdusur
proc countdusur {from keyword arg} {
set ::rawcount [expr $::rawcount - 1]
if {$::rawcount == "0"} {
unbind raw - 352 voysver
}
}
proc temiz {veri} {
regsub -all \< $veri " " veri
regsub -all \/ $veri " " veri
regsub -all \> $veri " " veri
return $veri
}
putlog "radyo-yama.tcl By \002SaW"
proc scstream { target } {
global streamip streamport streamtext
putlog "shoutcast: streaminfo requested by $target"
putquick "notice $target :$streamtext"
}
proc msg_stream { nick uhost hand arg } { global radiochans; scstream $nick }
proc pub_stream { nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower $radiochans] [string tolower $chan]] != -1) || ($radiochans == "")} { scstream $nick }}
proc scgreet { nick arg } {
if {$arg == ""} { putquick "notice $nick :4Mesajı eklemeyi unuttunuz."; return 0}
global dj streamip streamport streampass
putlog "shoutcast: $nick greets fly out to: $arg"
if {[catch {set sock [socket $streamip $streamport] } sockerror]} {
putlog "error: $sockerror"
return 0 } else {
puts $sock "GET /admin.cgi?pass=$streampass&mode=viewxml&page=0 HTTP/1.0"
puts $sock "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)"
puts $sock "Host: $streamip"
puts $sock "Connection: close"
puts $sock ""
flush $sock
while {[eof $sock] != 1} {
set bl [gets $sock]
if { [string first "standalone" $bl] != -1 } {
set streamstatus [string range $bl [shrink + 14 "<STREAMSTATUS>" 0 $bl] [shrink - 1 "</STREAMSTATUS>" 0 $bl]]
}}
if { $streamstatus == "1" } {
set temp [open "djnick" r]
set djnick [gets $temp]
close $temp
putquick "privmsg $djnick Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. GREET) - $nick - $arg"
} else {
putquick "privmsg $nick :Üzgünüz , Radyo şuan kapalı." }
}}
proc msg_greet { nick uhost hand arg } { global radiochans; scgreet $nick $arg }
proc pub_greet { nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower $radiochans] [string tolower $chan]] != -1) || ($radiochans == "")} { scgreet $nick $arg }}
proc msg_setdj { nick uhost hand arg } { global radiochans; setdj $nick $arg }
proc pub_setdj { nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower $radiochans] [string tolower $chan]] != -1) || ($radiochans == "")} { setdj $nick $arg }}
proc djnickchange { oldnick uhost hand chan newnick } {
set temp [open "djnick" r]
set djnick [gets $temp]
close $temp
if {$oldnick == $djnick} {
putlog "shoutcast: dj nickchange $oldnick -> $newnick"
set temp [open "djnick" w+]
puts $temp $newnick
close $temp
}}
proc dj { target chan } {
global streamip streamport streampass
putlog "shoutcast: $target asked for dj info"
if {[catch {set sock [socket $streamip $streamport] } sockerror]} {
putlog "error: $sockerror"
return 0 } else {
puts $sock "GET /admin.cgi?pass=$streampass&mode=viewxml&page=0 HTTP/1.0"
puts $sock "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)"
puts $sock "Host: $streamip"
puts $sock "Connection: close"
puts $sock ""
flush $sock
while {[eof $sock] != 1} {
set bl [gets $sock]
if { [string first "standalone" $bl] != -1 } {
set streamstatus [string range $bl [shrink + 14 "<STREAMSTATUS>" 0 $bl] [shrink - 1 "</STREAMSTATUS>" 0 $bl]]
set stitle [string range $bl [shrink + 13 "<SERVERTITLE>" 0 $bl] [shrink - 1 "</SERVERTITLE>" 0 $bl]]
set sgenre [string range $bl [shrink + 13 "<SERVERGENRE>" 0 $bl] [shrink - 1 "</SERVERGENRE>" 0 $bl]]
}}
if {$streamstatus == 1} {
if {[file exists dj]} {
set temp [open "dj" r]
set dj [gets $temp]
close $temp
putquick "notice $target :$dj şuan yayında!"
} else { putquick "privmsg $chan :8,1 »º» 9Dj :11,1 $stitle 8,1 »ºº« " }
} else {
putserv "PRIVMSG #Radyo $target :Üzgünüz , Radyo şuan kapalı."
}
close $sock
}}
proc msg_dj { nick uhost hand arg } { global radiochans; dj $nick $nick"}
proc pub_dj { nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower $radiochans] [string tolower $chan]] != -1) || ($radiochans == "")} { dj $nick $chan }}
proc scstat {target} {
global streamip streamport streampass
putlog "shoutcast: $target asked for serverstats"
if {[catch {set sock [socket $streamip $streamport] } sockerror]} {
putlog "error: $sockerror"
return 0 } else {
puts $sock "GET /admin.cgi?pass=$streampass&mode=viewxml&page=0 HTTP/1.0"
puts $sock "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)"
puts $sock "Host: $streamip"
puts $sock "Connection: close"
puts $sock ""
flush $sock
while {[eof $sock] != 1} {
set bl [gets $sock]
if { [string first "standalone" $bl] != -1 } {
set streamstatus [string range $bl [shrink + 14 "<STREAMSTATUS>" 0 $bl] [shrink - 1 "</STREAMSTATUS>" 0 $bl]]
set repl [string range $bl [shrink + 19 "<REPORTEDLISTENERS>" 0 $bl] [shrink - 1 "</REPORTEDLISTENERS>" 0 $bl]]
set curhigh [string range $bl [shrink + 15 "<PEAKLISTENERS>" 0 $bl] [shrink - 1 "</PEAKLISTENERS>" 0 $bl]]
set currentl [string range $bl [shrink + 18 "<CURRENTLISTENERS>" 0 $bl] [shrink - 1 "</CURRENTLISTENERS>" 0 $bl]]
set surl [string range $bl [shrink + 11 "<SERVERURL>" 0 $bl] [shrink - 1 "</SERVERURL>" 0 $bl]]
set maxl [string range $bl [shrink + 14 "<MAXLISTENERS>" 0 $bl] [shrink - 1 "</MAXLISTENERS>" 0 $bl]]
set bitrate [string range $bl [shrink + 9 "<BITRATE>" 0 $bl] [shrink - 1 "</BITRATE>" 0 $bl]]
set stitle [string range $bl [shrink + 13 "<SERVERTITLE>" 0 $bl] [shrink - 1 "</SERVERTITLE>" 0 $bl]]
set sgenre [string range $bl [shrink + 13 "<SERVERGENRE>" 0 $bl] [shrink - 1 "</SERVERGENRE>" 0 $bl]]
if {$sgenre != ""} {set sgenre " ($sgenre)"}
set avgtime [string range $bl [shrink + 13 "<AVERAGETIME>" 0 $bl] [shrink - 1 "</AVERAGETIME>" 0 $bl]]
set irc [string range $bl [shrink + 5 "<IRC>" 0 $bl] [shrink - 1 "</IRC>" 0 $bl]]
set icq [string range $bl [shrink + 5 "<ICQ>" 0 $bl] [shrink - 1 "</ICQ>" 0 $bl]]
if {$icq == 0} { set icq "N/A" }
set aim [string range $bl [shrink + 5 "<AIM>" 0 $bl] [shrink - 1 "</AIM>" 0 $bl]]
set webhits [string range $bl [shrink + 9 "<WEBHITS>" 0 $bl] [shrink - 1 "</WEBHITS>" 0 $bl]]
set streamhits [string range $bl [shrink + 12 "<STREAMHITS>" 0 $bl] [shrink - 1 "</STREAMHITS>" 0 $bl]]
set version [string range $bl [shrink + 9 "<VERSION>" 0 $bl] [shrink - 1 "</VERSION>" 0 $bl]]
set openup [string range $bl [shrink + 8 "<PLAYED>" 0 $bl] [shrink - 1 "</PLAYED>" 0 $bl]]
set playup [string range $bl [shrink + 9 "<UPDINFO>" 0 $bl] [shrink - 1 "</UPDINFO>" 0 $bl]]
set playon [string range $bl [shrink + 11 "<SONGTITLE>" 0 $bl] [shrink - 1 "</SONGTITLE>" 0 $bl]]
if {$streamstatus == 1} {
if {[file exists dj]} {
set temp [open "dj" r]
set dj [gets $temp]
close $temp
} else { set dj "none" }
putserv "PRIVMSG #Radyo 8,1 »º» 9Dj :11,1 $stitle 8,1 »ºº« "
putserv "PRIVMSG #Radyo 8,1 »º» 9Çalan Parça : $playon 8»ºº« "
putserv "PRIVMSG #Radyo 8,1»º» 0Şu An Radyo'yu Dinleyen Kişi Sayısı 8 $repl kişi "
} else {
putserv "PRIVMSG #Radyo 8,1 »º» 9Radyo Şuan Kapalı »ºº« " }
}}
close $sock
}}
proc msg_scstat { nick uhost hand arg } { global radiochans; scstat $nick}
proc pub_scstat { nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower $radiochans] [string tolower $chan]] != -1) || ($radiochans == "")} { scstat $nick }}
proc playing {target} {
global streamip streamport streampass
putlog "shoutcast: $target asked for current song"
if {[catch {set sock [socket $streamip $streamport] } sockerror]} {
putlog "error: $sockerror"
return 0 } else {
puts $sock "GET /admin.cgi?pass=$streampass&mode=viewxml&page=0 HTTP/1.0"
puts $sock "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)"
puts $sock "Host: $streamip"
puts $sock "Connection: close"
puts $sock ""
flush $sock
while {[eof $sock] != 1} {
set bl [gets $sock]
if { [string first "standalone" $bl] != -1 } {
set streamstatus [string range $bl [shrink + 14 "<STREAMSTATUS>" 0 $bl] [shrink - 1 "</STREAMSTATUS>" 0 $bl]]
set songtitle [string range $bl [shrink + 11 "<SONGTITLE" 0 $bl] [shrink - 1 "</SONGTITLE>" 0 $bl]]
set stitle [string range $bl [shrink + 13 "<SERVERTITLE>" 0 $bl] [shrink - 1 "</SERVERTITLE>" 0 $bl]]
set sgenre [string range $bl [shrink + 13 "<SERVERGENRE>" 0 $bl] [shrink - 1 "</SERVERGENRE>" 0 $bl]]
set songurl [string range $bl [shrink + 9 "<SONGURL>" 0 $bl] [shrink - 1 "</SONGURL>" 0 $bl]]
if {$songurl != ""} { set songurl " ($songurl:5135/listen.pls)"}
regsub -all "<" $songtitle "<" songtitle
regsub -all ">" $songtitle ">" songtitle
regsub -all "&" $songtitle "+" songtitle
regsub -all """ $songtitle "\"" songtitle
regsub -all "'" $songtitle "'" songtitle
regsub -all "ÿ" $songtitle "" songtitle
regsub -all "ı" $songtitle "ı" songtitle
regsub -all "Ö" $songtitle "Ö" songtitle
regsub -all "Ü" $songtitle "Ü" songtitle
regsub -all "ö" $songtitle "Ö" songtitle
regsub -all "ç" $songtitle "ç" songtitle
regsub -all "ü" $songtitle "Ü" songtitle
regsub -all "ğ" $songtitle "ğ" songtitle
regsub -all "İ" $songtitle "İ" songs
regsub -all "Ğ" $songtitle "Ğ" songtitle
regsub -all "
" $songtitle "Ğ" songtitle
if {$streamstatus == 1} {
putquick "notice $target :\00308,01»º» \00309Radyo - Çalan Parça :\00313 $songtitle\00309 Dj :\00311 $stitle ($sgenre)\00300 $::tamadres\00308 »ºº« "
} else {
putquick "notice $target :8,1 »º» 9Radyo Şuan Kapalı »ºº« "
}}}
close $sock
}}
proc msg_playing { nick uhost hand arg } { global radiochans; playing $nick}
proc pub_playing { nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower $radiochans] [string tolower $chan]] != -1) || ($radiochans == "")} { playing $nick }}
proc isonline { nick uhost hand chan arg } {
global radiochans announce tellusers tellsongs tellbitrate urltopic
global offlinetext offlinetopic onlinetext onlinetopic
global streamip streampass streamport
if {$announce == 1 || $tellsongs == 1 || $tellusers == 1 || $tellbitrate == 1} {
set isonlinefile "isonline"
set oldisonline "isonline: 0"
set oldcurlist "curlist: 0"
set oldcurhigh "curhigh: 0"
set oldsong "cursong: 0"
set oldbitrate "bitrate: 0"
if {[file exists $isonlinefile]} {
putlog "shoutcast: checking if stream is online"
set temp [open "isonline" r]
while {[eof $temp] != 1} {
set zeile [gets $temp]
if {[string first "isonline:" $zeile] != -1 } { set oldisonline $zeile }
if {[string first "curlist:" $zeile] != -1 } { set oldcurlist $zeile }
if {[string first "curhigh:" $zeile] != -1 } { set oldcurhigh $zeile }
if {[string first "cursong:" $zeile] != -1 } { set oldsong $zeile }
if {[string first "bitrate:" $zeile] != -1 } { set oldbitrate $zeile }
}
close $temp
}
if {[catch {set sock [socket $streamip $streamport] } sockerror]} {
putlog "error: $sockerror"
return 0} else {
puts $sock "GET /admin.cgi?pass=$streampass&mode=viewxml&page=0 HTTP/1.0"
puts $sock "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)"
puts $sock "Host: $streamip"
puts $sock "Connection: close"
puts $sock ""
flush $sock
while {[eof $sock] != 1} {
set bl [gets $sock]
if { [string first "standalone" $bl] != -1 } {
set streamstatus "isonline: [string range $bl [shrink + 14 "<STREAMSTATUS>" 0 $bl] [shrink - 1 "</STREAMSTATUS>" 0 $bl]]"
set repl "1[string range $bl [shrink + 19 "<REPORTEDLISTENERS>" 0 $bl] [shrink - 1 "</REPORTEDLISTENERS>" 0 $bl]]"
set curhigh "curhigh: [string range $bl [shrink + 15 "<PEAKLISTENERS>" 0 $bl] [shrink - 1 "</PEAKLISTENERS>" 0 $bl]]"
set currentl [string range $bl [shrink + 18 "<CURRENTLISTENERS>" 0 $bl] [shrink - 1 "</CURRENTLISTENERS>" 0 $bl]]
set voicevr [string range $bl [shrink + 11 "<LISTENERS>" 0 $bl] [shrink - 1 "</LISTENERS>" 0 $bl]]
set surl "serverurl: [string range $bl [shrink + 11 "<SERVERURL>" 0 $bl] [shrink - 1 "</SERVERURL>" 0 $bl]]"
set cursong "cursong: [string range $bl [shrink + 11 "<SONGTITLE" 0 $bl] [shrink - 1 "</SONGTITLE>" 0 $bl]]"
set songurl [string range $bl [shrink + 9 "<SONGURL>" 0 $bl] [shrink - 1 "</SONGURL>" 0 $bl]]
set bitrate "bitrate: [string range $bl [shrink + 9 "<BITRATE>" 0 $bl] [shrink - 1 "</BITRATE>" 0 $bl]]"
set stitle [string range $bl [shrink + 13 "<SERVERTITLE>" 0 $bl] [shrink - 1 "</SERVERTITLE>" 0 $bl]]
set sgenre [string range $bl [shrink + 13 "<SERVERGENRE>" 0 $bl] [shrink - 1 "</SERVERGENRE>" 0 $bl]]
}}
close $sock
}
set temp [open "isonline" w+]
puts $temp "$streamstatus\n$repl\n$curhigh\n$cursong\n$bitrat e"
close $temp
if {$announce == 1 } {
if {$streamstatus == "isonline: 0" && $oldisonline == "isonline: 1"} {
poststuff privmsg $offlinetext
if {$urltopic == 1} { poststuff topic $offlinetopic }
}
if {$streamstatus == "isonline: 1" && $oldisonline == "isonline: 0" } {
if {$sgenre != ""} {
set sgenre " ($sgenre)"
}
putquick "os global $onlinetext"
poststuff privmsg "8,1 »º» 0,1Radyo Url Adresimiz: 8,1$::tamadres"
if {$urltopic == 1} { poststuff topic "$onlinetopic" }
}}
if {($tellusers == 1) && ($streamstatus == "isonline: 1") && ($oldcurhigh != "curhigh: 0") } {
if {$oldcurhigh != $curhigh} {
poststuff privmsg "4,15Yeni dinleyici sayısı : 1[lindex $curhigh 1]"
}
if {$oldcurlist != $repl} {
poststuff privmsg "8,1 »º» 0Şu An Radyo'yu Dinleyen Kişi Sayısı 8 $repl kişi "
}}
if {($tellsongs == 1) && ($oldsong != $cursong) && ($streamstatus == "isonline: 1") } {
if {$songurl != ""} { set songurl " $songurl:9998/listen.pls"}
regsub -all "<" $cursong "<" cursong
regsub -all ">" $cursong ">" cursong
regsub -all "&" $cursong "+" cursong
regsub -all """ $cursong "\"" cursong
regsub -all "'" $cursong "'" cursong
regsub -all "ÿ" $cursong "" cursong
regsub -all "Ö" $cursong "Ö" cursong
regsub -all "Ü" $cursong "Ü" cursong
regsub -all "ç" $cursong "ç" cursong
regsub -all "ö" $cursong "Ö" cursong
regsub -all "ü" $cursong "Ü" cursong
regsub -all "ı" $cursong "ı" cursong
regsub -all "" $cursong "ö" cursong
regsub -all "İ" $cursong "İ" cursong
regsub -all "Ğ" $cursong "Ğ" cursong
regsub -all "
" $cursong "Ğ" cursong
putquick "wallops \00308,01 »º» \00309Radyo - Çalan Parça : \00313[lrange $cursong 1 [llength $cursong]] \00300$::tamadres \00308»ºº«"
set wmsg [rand 4]
if {$wmsg == "1"} { putquick "privmsg \00302Eğer bu bildiriyi almak istemiyorsanız :\00305\002 /mode Nick -w \00302\002yazınız." }
poststuff privmsg "8,1 »º» 9Radyo - Çalan Parça : 13[lrange $cursong 1 [llength $cursong]] 8»ºº« "
poststuff privmsg "8,1 »º» 9Dj :11,1 $sgenre \00300($stitle) 8,1 »ºº« "
poststuff privmsg "\00308,01 »º» \00309Link :\0030 $::tamadres\00308 »ºº«"
poststuff privmsg "\00308,01 »º» \00309URL :\0030 [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] »ºº«"
poststuff privmsg " "
set temp [open "djnicki" r]
set dtemp [gets $temp]
close $temp
if {$dtemp == ""} {
putquick "os global \00308,1 »º» \00309Şuan Yayın Yapan Dj :\00311,01 $sgenre \00300($stitle) \00308,01 »ºº«"
set temp [open "djnicki" w]
puts $temp $sgenre
close $temp
setdj $sgenre ""
}
if {$dtemp != "" && $dtemp != "$sgenre"} {
putlog "bura 2 $dtemp"
putquick "os global \00308,1 »º» \00309Şuan Yayın Yapan Dj :\00311,01 $sgenre \00300($stitle) \00308,01 »ºº«"
set temp [open "djnicki" w]
puts $temp $sgenre
close $temp
setdj $sgenre ""
}
}
if {($tellbitrate == 1) && ($oldbitrate != $bitrate) && ($streamstatus == "isonline: 1") && ($oldbitrate != "bitrate: 0")} {
poststuff privmsg "$oldbitrate kbps'den [lindex $bitrate 1] kbps'ye değişti."
}}}
bind pub - !istek istek
proc istek {n u h c a} {
global gnick
set gnick $n
set kanal [lindex $a ]
putserv "PRIVMSG #Radyo@ 4ISTEK : 12 İsteyen: 4 $gnick 12İsteği: 4 $kanal 12 !var , !yok Şeklinde cevaplayın"
putserv "PRIVMSG #Radyo 14 İsteğiniz iletilmiştir. 12 $gnick 2( $kanal ) "
}
bind pub - !var vardir
proc vardir {n u h c a} {
global gnick
set gnick $n
set kanal [lindex $a ]
putserv "PRIVMSG #Radyo 14 İsteğiniz Listemde Mevcuttur, Çalmak Üzere Sıraya Alınmıştır : "
putserv "PRIVMSG #Radyo@ 14 Cevabın Sıraya Alındı Olarak Yollandi : 12 $gnick 2 "
}
bind pub - !yok yoktur
proc yoktur {n u h c a} {
global gnick
set gnick $n
set kanal [lindex $a ]
putserv "PRIVMSG #Radyo 14 İsteğiniz Listemde Yoktur Lütfen Başka İstekte Bulunun : 12 $gnick "
putserv "PRIVMSG #Radyo@ 14 Cevabın Listemde Yok Olarak Yollandi Dj 12 "
}
bind pub - !calma calma
proc calma {n u h c a} {
global gnick
set gnick $n
set kanal [lindex $a ]
putserv "PRIVMSG #Radyo 4Şuan İstek Almıyoruz Lütfen Daha Sonra Tekrar Deneyin : 12 $gnick "
putserv "PRIVMSG #Radyo@ 14 Cevabın İstek Almıyorum Olarak Yollandi Dj 12 $gnick 2( $kanal ) "
}
bind time - "* * * * *" yenidinleyici
proc yenidinleyici {min hour day month year} {
global streamip streampass streamport
if {[catch {set sock [socket $streamip $streamport] } sockerror]} {
putlog "error: $sockerror"
return 0
} else {
puts $sock "GET /admin.cgi?pass=$streampass&mode=viewxml&page=0 HTTP/1.0"
puts $sock "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)"
puts $sock "Host: $streamip"
puts $sock "Connection: close"
puts $sock ""
flush $sock
while {[eof $sock] != 1} {
set bl [gets $sock]
if { [string first "standalone" $bl] != -1 } {
set voicevr [string range $bl [shrink + 11 "<LISTENERS>" 0 $bl] [shrink - 1 "</LISTENERS>" 0 $bl]]
set streamstatus "[string range $bl [shrink + 14 "<STREAMSTATUS>" 0 $bl] [shrink - 1 "</STREAMSTATUS>" 0 $bl]]"
}
}
close $sock
}
if {[info exists streamstatus] && $streamstatus == "1"} {
set voicevr [temiz $voicevr]
if {[llength $voicevr] < 1} { return 1 }
set deger 0
set ::rawcount 0
set ipler ""
bind raw -|- 352 voysver
foreach i $voicevr {
if {[regexp {^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$} [lindex $voicevr $deger]]} {
incr ::rawcount
lappend ipler "[lindex $voicevr $deger] "
}
incr deger
}
set ydeger 0
foreach j $ipler {
putquick "who +i [lindex $ipler $ydeger]"
incr ydeger
}
}
}
proc voysver {from keyword arg} {
set x [open dinleyici1.txt a]
puts $x [lindex $arg 5]
close $x
}
bind raw - 315 countdusur
proc countdusur {from keyword arg} {
global radiochans
if {$::rawcount > 0} {
set ::rawcount [expr $::rawcount - 1]
if {$::rawcount == "0"} {
unbind raw -|- 352 voysver
if {![file exists dinleyici2.txt]} {
putlog "şuan1 dinleyici2.txt : [file exists dinleyici2.txt]"
set x [open dinleyici1.txt r]
set y [read $x]
close $x
set w [open dinleyici2.txt a]
puts $w $y
close $w
foreach m $y {
if {[onchan $m $radiochans]} {
putquick "mode $radiochans +v $m"
putquick "privmsg $radiochans :\002$m\002 Radyo'yu dinlediğiniz için teşekkürler."
}
}
file delete dinleyici1.txt
} elseif {[file exists dinleyici2.txt]} {
set t [open dinleyici1.txt]
set m [open dinleyici2.txt]
set t1 [read $t]
set m1 [read $m]
foreach x $t1 {
set bulundu 0
foreach y $m1 {
if {$x == $y} { set bulundu 1 }
}
if {$bulundu == "0"} {
putquick "mode $radiochans +v $x"
putquick "privmsg $radiochans :\002$x\002 Radyo'yu dinlediğiniz için teşekkürler."
putquick "notice $x :\002$x\002 #Radyo 'yu dinlediğiniz için Teşekkürler"
putquick "privmsg $x :2Merhaba4 $x "
putquick "privmsg $x :2Suanda 7KELEBEK 4RADYO 2Dinleyci Konumuna gectiniz Keyifli Vakitler gecirmeniz dilegi ile Bizden Ayrilmayin! "
putquick "privmsg $x :2Dj'lerimizden Onlyn istek isteye bilirsiniz Tek yapmanız gereken #radyo Kanalında "
putquick "privmsg $x : 12!istek Yusuf güney İki Romantik deLi 4KELEBEK Radyo dinleycilerine gelsin 2Yazmanız yeterlidir."
}
}
foreach x $m1 {
set bulundu 0
foreach y $t1 {
if {$x == $y} { set bulundu 1 }
}
if {$bulundu == "0"} {
putquick "mode $radiochans -v $x"
putquick "privmsg $radiochans : 7 $x 2Dinleyci Konumundan 7Ayrıldı"
}
}
close $m ; close $t
file delete dinleyici2.txt
file copy dinleyici1.txt dinleyici2.txt
file delete dinleyici1.txt
}
}
}
}
proc temiz {veri} {
regsub -all \< $veri " " veri
regsub -all \/ $veri " " veri
regsub -all \> $veri " " veri
return $veri
}
MesqeN'in gösterdiği kodda, en yukarıdaki kod zaten içine gömülmüş.arada "bind time - "* * * * *" yenidinleyici" bu satırdan itibaren bakarsanız en yukardaki kodla aynı.farkları variable isimleri birinde streamip streamport diye geçerken diğerinde radyoip ,rport şeklinde...
ve verilen voice geri almak için ,alttakinde yukardakinde olmayan .txt'e kaydetme olayı eklenmiş.dinleyene yukardaki operserv'den +v verdirirken alttakinde dinleyen txt.dosyasına işleniyor.oradan okutulup botunuzun kişiye +v vermesi ,aynı şekilde .txt'te okunmazsa kişinin bilgisi -v ediliyor.
yani böyle bir düzenleme eklenmiş alttakinde yukardakine ek olarak.
ne yapabilirsiniz? : yukarıda belirttiğim satırdan itibaren kodu bölüp-kesip alıp kendi kullandığınız radyo kodunun altına ekleyebilirsiniz. yapmanız gerekecek değişikliklerse ,radyo bilgilerinizi içeren streamip streamport gibi $var'ların isimlerini kendi kullandığınız koddakiyle aynı olmasını sağlamak,ki bu değişkenleri kullanarak sizin kodunuzla işlem yapabilsin...
yada : hiç kesmeden yukarıdaki kodu da yükler ayarlar kısmında kendi radyo bilgilerinizi girersiniz kod içinde kullanmak istemediğiniz komutların bind satırlarını ya unbind olarak değişerek yada o bind satırlarının başına # hashtag ekleyerek etkisiz kılıp kullanım dışına ayırarak kullanabilirsiniz...
hocam bunun istek vs çalışmasın sadece dinleyene voice devoice yapmak istiyorum cünki bot nomercy war tcl olarak sadece eklicem
Merhaba.
PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
################################################# # Radyo dinleyenleri Ayırt etme ve voice # veren bir tcldir.. # tcl yapımcısını bilmiyorum # editlenmesi gereken kısımlar. # #Dj - iPADRESINIZ - port - radyoşifre # ################################################## set adminchans "#Dj" set streamip "İPADRESINIZ" set streamport "port" set streampass "Radyoşifre"
bind time - "* * * * *" yenidinleyici proc yenidinleyici {min hour day month year} { global streamip streampass streamport if {[catch {set sock [socket $streamip $streamport] } sockerror]} { putlog "error: $sockerror" return 0 } else { puts $sock "GET /admin.cgi?pass=$streampass&mode=viewxml&page=0 HTTP/1.0" puts $sock "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)" puts $sock "Host: $streamip" puts $sock "Connection: close" puts $sock "" flush $sock while {[eof $sock] != 1} { set bl [gets $sock] if { [string first "standalone" $bl] != -1 } { set voicevr [string range $bl [shrink + 11 "<LISTENERS>" 0 $bl] [shrink - 1 "</LISTENERS>" 0 $bl]] set streamstatus "[string range $bl [shrink + 14 "<STREAMSTATUS>" 0 $bl] [shrink - 1 "</STREAMSTATUS>" 0 $bl]]" } } close $sock } if {[info exists streamstatus] && $streamstatus == "1"} { set voicevr [temiz $voicevr] if {[llength $voicevr] < 1} { return 1 } set deger 0 set ::rawcount 0 set ipler "" bind raw -|- 352 voysver foreach i $voicevr { if {[regexp {^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$} [lindex $voicevr $deger]]} { incr ::rawcount lappend ipler "[lindex $voicevr$deger] " } incr deger } set ydeger 0 foreach j $ipler { putquick "who +i [lindex $ipler$ydeger]" incr ydeger } } } proc voysver {from keyword arg} { set x [open dinleyici1.txt a] puts $x [lindex $arg 5] close $x }
bind raw - 315 countdusur proc countdusur {from keyword arg} { global radiochans if {$::rawcount > 0} { set ::rawcount [expr $::rawcount - 1] if {$::rawcount == "0"} { unbind raw -|- 352 voysver if {![file exists dinleyici2.txt]} { putlog "şuan1 dinleyici2.txt : [file exists dinleyici2.txt]" set x [open dinleyici1.txt r] set y [read $x] close $x set w [open dinleyici2.txt a] puts $w $y close $w foreach m $y { if {[onchan $m $radiochans]} { putquick "mode $radiochans +v $m" putquick "privmsg $radiochans :\002$m\002 Radyo'yu dinlediğiniz için teşekkürler." } } file delete dinleyici1.txt } elseif {[file exists dinleyici2.txt]} { set t [open dinleyici1.txt] set m [open dinleyici2.txt] set t1 [read $t] set m1 [read $m] foreach x $t1 { set bulundu 0 foreach y $m1 { if {$x == $y} { set bulundu 1 } } if {$bulundu == "0"} { putquick "mode $radiochans +v $x" putquick "privmsg $radiochans :\002$x\002 Radyo'yu dinlediğiniz için teşekkürler." putquick "notice $x :\002$x\002 #Radyo 'yu dinlediğiniz için Teşekkürler"
} } foreach x $m1 { set bulundu 0 foreach y $t1 { if {$x == $y} { set bulundu 1 } } if {$bulundu == "0"} { putquick "mode $radiochans -v $x" putquick "privmsg $radiochans : 7 $x 2Dinleyci Konumundan 7Ayrıldı" } } close $m ; close $t file delete dinleyici2.txt file copy dinleyici1.txt dinleyici2.txt file delete dinleyici1.txt } } } }
proc temiz {veri} { regsub -all \< $veri " " veri regsub -all \/ $veri " " veri regsub -all \> $veri " " veri return $veri }