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
}