Kod : Kodu kopyalamak için üzerine çift tıklayın!
set radiochans "#Radyo"
set streamip "185.255.92.119"
set streamport "8042"
set streampass "şifreniz"
set scstatstrigger "!durum"
set scstreamtrigger "!link"
set scplayingtrigger "!calan"
set sclistenertrigger "!dinleyen"
set scdjtrigger "!dj"
set scsetdjtrigger ".setdj"
set scwishtrigger "!istek"
set scgreettrigger ".greet"
set sclastsongstrigger "!Liste"
set schelptrigger "!yardim"
set announce "1"
set urltopic "1"
set tellsongs "1"
set tellusers "1"
set tellbitrate "1"
set advertise "1"
set offlinetext "13,13.13,1 .ılı.ıl.ı 13,13. 0,5 Radyo için 0,3Gerekli Bilgiler 0,5 !Durum 0,3 !istek 0,5 !Link 0,3 !Calan 0,5 !Dinleyen 13,13.13,1 .ılı.ıl.ı 13,13."
set offlinetopic "13,13.13,1 .ılı.ıl.ı 13,13. 0,5 Radyo için 0,3Gerekli Bilgiler 0,5 !Durum 0,3 !istek 0,5 !Link 0,3 !Calan 0,5 !Dinleyen 13,13.13,1 .ılı.ıl.ı 13,13."
set onlinetext "13,13.13,1 .ılı.ıl.ı 13,13. 0,3 Radyomuzu Winamp'tan 0,3Dinlemek icin Tiklayin >>> http://Radyo.irctr.org:8042/listen.pls 13,13.13,1 .ılı.ıl.ı 13,13."
set onlinetopic "13,13.13,1 .ılı.ıl.ı 13,13. 0,3 Radyomuzu Winamp'tan 0,3Dinlemek icin Tiklayin >>> http://Radyo.irctr.org:8042/listen.pls 13,13.13,1 .ılı.ıl.ı 13,13."
set streamtext "13,13.13,1 .ılı.ıl.ı 13,13. 0,3Radyomuzu Winamp'tan 0,3Dinlemek icin Tiklayin >>>0,5 http://Radyo.irctr.org:8042/listen.pls 13,13.13,1 .ılı.ıl.ı 13,13."
set advertisetext "13,13.13,1 .ılı.ıl.ı 13,13. 0,5 Radyo için 0,3Gerekli Bilgiler 0,5 !Durum 0,3 !istek 0,5 !Link 0,3 !Calan 0,5 !Dinleyen 13,13.13,1 .ılı.ıl.ı 13,13."
# end of config #####################
bind pub - $scstatstrigger pub_scstat
bind msg - $scstatstrigger msg_scstat
bind pub - $scplayingtrigger pub_playing
bind msg - $scplayingtrigger msg_playing
bind pub - $scdjtrigger pub_dj
bind msg - $scdjtrigger msg_dj
bind pub D $scsetdjtrigger pub_setdj
bind msg D $scsetdjtrigger msg_setdj
bind pub - $scwishtrigger pub_wish
bind msg - $scwishtrigger msg_wish
bind pub - $scgreettrigger pub_greet
bind msg - $scgreettrigger msg_greet
bind pub - $scstreamtrigger pub_stream
bind msg - $scstreamtrigger msg_stream
bind pub - $sclastsongstrigger pub_lastsongs
bind msg - $sclastsongstrigger msg_lastsongs
bind pub - $sclistenertrigger pub_listener
bind msg - $sclistenertrigger msg_listener
bind pub - $schelptrigger pub_help
bind msg - $schelptrigger msg_help
bind time - "* * * * *" isonline
bind time - "?0 * * * *" advertise
bind nick D * djnickchange
proc shrink { calc number string Thet bl} { return [expr [string first "$string" $bl $Thet] $calc $number] }
proc poststuff { mode text } {
global radiochans
foreach chan [channels] {
if {$radiochans == "" } { putserv "$mode $chan :$text" }
if {$radiochans != "" } {
if {([lsearch -exact [string tolower $radiochans] [string tolower $chan]] != -1) || ($radiochans == "")} {putserv "$mode $chan :$text"}
}}}
proc schelp { target } {
global scstatstrigger scstreamtrigger scplayingtrigger scdjtrigger sclastsongstrigger scwishtrigger scgreettrigger sclistenertrigger
putserv "privmsg #Radyo Radyo botu icin gerekli komutlar:"
putserv "privmsg #Radyo $scstatstrigger - $scstreamtrigger - $scplayingtrigger - $scdjtrigger - $sclastsongstrigger - $scwishtrigger - $scgreettrigger - $sclistenertrigger"
putserv "privmsg #Radyo Radyo.tcl Yapimcisı 4http://www.irctr.org"
}
proc pub_help {nick uhost hand chan arg} {
global radiochans
if {$radiochans == "" } { schelp $nick }
if {$radiochans != "" } {
if {([lsearch -exact [string tolower $radiochans] [string tolower $chan]] != -1) || ($radiochans == "")} { schelp $nick}
}}
proc advertise { nick uhost hand chan arg } {
global advertisetext advertise
if {$advertise == "1" } { poststuff privmsg $advertisetext }
}
proc setdj {nickname djnickname } {
if {$djnickname == "" } { set djnickname $nickname }
global streamip streamport streampass
putlog "shoutcast: new dj: $djnickname ($nickname)"
set temp [open "dj" w+]
puts $temp $djnickname
close $temp
set temp [open "djnick" w+]
puts $temp $nickname
close $temp
putserv "privmsg your are now dj of this radio"
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" } { poststuff privmsg "$djnickname is now rocking the turntables, enjoy." } else {
putserv "privmsg this has not been announced because the radio is currentlfy offline." }
}}
proc listener { target } {
global streamip streamport streampass
putlog "shoutcast: $target requested listener count"
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 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 maxl [string range $bl [shrink + 14 "<MAXLISTENERS>" 0 $bl] [shrink - 1 "</MAXLISTENERS>" 0 $bl]]
set avgtime [string range $bl [shrink + 13 "<AVERAGETIME>" 0 $bl] [shrink - 1 "</AVERAGETIME>" 0 $bl]]
}}
close $sock
putserv "privmsg #Radyo 0,14 • ¤ ¤ ¤ 0,5 Suan Yayınımızı : 0,3 [expr $repl + 0] 0,5 Kişi Dinliyor 0,14 • ¤ ¤ ¤"
}}
proc msg_listener { nick uhost hand arg } { global radiochans; listener $nick }
proc pub_listener { nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower $radiochans] [string tolower $chan]] != -1) || ($radiochans == "")} { listener $nick }}
proc wish { nick arg } {
if {$arg == ""} { putserv "privmsg #Radyo you forgot to add your wish"; return 0}
global streamip streamport streampass
putlog "shoutcast: $nick wants to hear: $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
putserv "privmsg $djnick :(WISH) - $nick - $arg"
} else {
putserv "privmsg #Radyo Suan Radyo Yayini Yapilmamaktadir" }
}}
proc msg_wish { nick uhost hand arg } { global radiochans; wish $nick $arg }
proc pub_wish { nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower $radiochans] [string tolower $chan]] != -1) || ($radiochans == "")} { wish $nick $arg }}
proc sclastsongs { target } {
global streamip streamport streampass
putlog "shoutcast: $target requested songhistory"
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 songs [string range $bl [string first "<TITLE>" $bl] [expr [string last "</TITLE>" $bl] + 7]]
regsub -all "<" $songs "<" songs
regsub -all ">" $songs ">" songs
regsub -all "&" $songs "+" songs
regsub -all """ $songs "\"" songs
regsub -all "'" $songs "'" songs
regsub -all "ÿ" $songs "" songs
regsub -all "<TITLE>" $songs "(" songs
regsub -all "</TITLE>" $songs ")" songs
regsub -all "<SONG>" $songs "" songs
regsub -all "</SONG>" $songs " - " songs
regsub -all "<PLAYEDAT>" $songs "" songs
regsub -all "</PLAYEDAT>" $songs "" songs
regsub -all {\d} $songs "" songs
}}
putserv "privmsg #Radyo $songs"
}}
proc msg_lastsongs { nick uhost hand arg } { global radiochans; sclastsongs $nick }
proc pub_lastsongs { nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower $radiochans] [string tolower $chan]] != -1) || ($radiochans == "")} { sclastsongs $nick }}
proc scstream { target } {
global streamip streamport streamtext
putlog "shoutcast: streaminfo requested by $target"
putserv "privmsg #Radyo $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 == ""} { putserv "privmsg #Radyo 4#Radyo Kanalina Hosgeldiniz"; 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
putserv "privmsg $djnick :(GREET) - $nick - $arg"
} else {
putserv "privmsg #Radyo Uzgunuz Suan Yayın Yapılmıyor" }
}}
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 } {
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]]
}}
if {$streamstatus == 1} {
if {[file exists dj]} {
set temp [open "dj" r]
set dj [gets $temp]
close $temp
putserv "privmsg #Radyo $dj is at the turntables!"
} else { putserv "privmsg #Radyo Uzgunuz Suan Dj Bulunmamaktadır" }
} else {
putserv "privmsg #Radyo Radyo Yayini Suan Yapilmamaktadir"
}
close $sock
}}
proc msg_dj { nick uhost hand arg } { global radiochans; dj $nick"}
proc pub_dj { nick uhost hand chan arg } { global radiochans; if {([lsearch -exact [string tolower $radiochans] [string tolower $chan]] != -1) || ($radiochans == "")} { dj $nick }}
proc scstat {target} {
global streamip streamport streampass
putlog "shoutcast: $target SihirSohbeted 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 songtitle [string range $bl [shrink + 11 "<SONGTITLE" 0 $bl] [shrink - 1 "</SONGTITLE>" 0 $bl]]
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 "Ü" songtitle
regsub -all "ß" $songtitle "ß" songtitle
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 :13,13.13,1 .ılı.ıl.ı 13,13. 0,3 Dj 0,3 $stitle$sgenre Şu Anda Yayında 13,13.13,1 .ılı.ıl.ı 13,13."
} else {
putserv "privmsg #Radyo :13,13.13,1 .ılı.ıl.ı 13,13. 0,3 Dj 0,3 $stitle$sgenre Şu Anda Offline 13,13.13,1 .ılı.ıl.ı 13,13."
putserv "privmsg #Radyo :-" }
putserv "privmsg #Radyo :13,13.13,1 .ılı.ıl.ı 13,13. 0,3 Çalan Şarkı : $songtitle 13,13.13,1 .ılı.ıl.ı 13,13."
putserv "privmsg #Radyo :13,13.13,1 .ılı.ıl.ı 13,13. 0,3 Dinleyen :0,3 ([expr $repl + 0]) Kisi Dinliyor 13,13.13,1 .ılı.ıl.ı 13,13."
putserv "privmsg #Radyo :13,13.13,1 .ılı.ıl.ı 13,13. 0,3 Dinleyen Rekor ([expr $curhigh + 0]) 13,13.13,1 .ılı.ıl.ı 13,13."
putserv "privmsg #Radyo :13,13.13,1 .ılı.ıl.ı 13,13. 0,3 Dinlemek İcin Tiklayin >> http://Radyo.irctr.org:8042/listen.pls 13,13.13,1 .ılı.ıl.ı 13,13."
putserv "privmsg #Radyo :13,13.13,1 .ılı.ıl.ı 13,13. 0,3 Web'den 0,3 Dinlemek İcin Tiklayin www.irctr.org www.sohbetlisin.com 13,13.13,1 .ılı.ıl.ı 13,13."
putserv "privmsg #Radyo :"
putserv "privmsg #Radyo :"
}}
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 songurl [string range $bl [shrink + 9 "<SONGURL>" 0 $bl] [shrink - 1 "</SONGURL>" 0 $bl]]
if {$songurl != ""} { set songurl " ($songurl)"}
regsub -all "<" $songtitle "<" songtitle
regsub -all ">" $songtitle ">" songtitle
regsub -all "&" $songtitle "+" songtitle
regsub -all """ $songtitle "\"" songtitle
regsub -all "'" $songtitle "'" songtitle
regsub -all "ÿ" $songtitle "" songtitle
if {$streamstatus == 1} {
putserv "privmsg #Radyo 0,14 • ¤ ¤ ¤ 0,3 Çalan Şarkı: 0,5 $songtitle$songurl 0,14 ¤ ¤ ¤ •"
} else {
putserv "privmsg #Radyo Yayın Şuan Yoktur"
}}}
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 "4,1 : 15,1 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 "curlist: [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 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$bitrate"
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)"
}
poststuff privmsg "15,1 Radyomuz suanda 4,1ACIK.. 0,4 ** 9,1 Radyomuzu Winamp'ten dinlemek icin tiklayin 0,4 >>> 12http://Radyo.irctr.org:8042/listen.pls "
if {$urltopic == 100} { poststuff topic "Yayında Suan <<<$stitle>>> bulunmakta.Yayin turu: $sgenre Calan parca: >>>>> [lrange $cursong 1 [llength $cursong]]$songurl <<<< " }
}}
if {($tellusers == 1) && ($streamstatus == "isonline: 1") && ($oldcurhigh != "curhigh: 0") } {
if {$oldcurhigh != $curhigh} {
poststuff privmsg "13,13.13,1 .ılı.ıl.ı 13,13. 0,3 Yayınımızı : 0,5 [lindex [expr $curhigh + 0] 1] 0,3 Kişi Dinliyor 13,13.13,1 .ılı.ıl.ı 13,13."
}
if {$oldcurlist != $repl} {
poststuff privmsg "13,13.13,1 .ılı.ıl.ı 13,13. 0,3 Şuan Yayınımızı : 0,5 ([expr $repl + 0]) 0,3 Kişi Dinliyor 13,13.13,1 .ılı.ıl.ı 13,13."
}}
if {($tellsongs == 1) && ($oldsong != $cursong) && ($streamstatus == "isonline: 1") } {
if {$songurl != ""} { set songurl " ($songurl)"}
regsub -all "<" $cursong "<" cursong
regsub -all ">" $cursong ">" cursong
regsub -all "&" $cursong "+" cursong
regsub -all """ $cursong "\"" cursong
regsub -all "'" $cursong "'" cursong
regsub -all "ÿ" $cursong "" cursong
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 maxl [string range $bl [shrink + 14 "<MAXLISTENERS>" 0 $bl] [shrink - 1 "</MAXLISTENERS>" 0 $bl]]
poststuff privmsg " "
poststuff privmsg "13,13.13,1 .ılı.ıl.ı 13,13. 0,3 Dj0,3 $stitle Şu Anda Yayında 13,13.13,1 .ılı.ıl.ı 13,13."
poststuff privmsg "13,13.13,1 .ılı.ıl.ı 13,13. 0,3 Çalan Şarkı : [lrange $cursong 1 [llength $cursong]]$songurl 13,13.13,1 .ılı.ıl.ı 13,13."
poststuff privmsg "13,13.13,1 .ılı.ıl.ı 13,13. 0,3 Dinleyen : ([expr $repl + 0]) Kisi Dinliyor 13,13.13,1 .ılı.ıl.ı 13,13."
poststuff privmsg "13,13.13,1 .ılı.ıl.ı 13,13. 0,3 Rekor ([expr $curhigh + 0]) 13,13.13,1 .ılı.ıl.ı 13,13."
poststuff privmsg "13,13.13,1 .ılı.ıl.ı 13,13. 0,3 Web/Mobil İle Dinlemek İçin www.irctr.org Adresine Tıklayabilirsin. 13,13.13,1 .ılı.ıl.ı 13,13."
poststuff privmsg "13,13.13,1 .ılı.ıl.ı 13,13. 0,3 Winamp'dan 0,3 Dinlemek İcin Tiklayin >> http://Radyo.irctr.org:8042/listen.pls 13,13.13,1 .ılı.ıl.ı 13,13."
poststuff privmsg ""
}
if {($tellbitrate == 1) && ($oldbitrate != $bitrate) && ($streamstatus == "isonline: 1") && ($oldbitrate != "bitrate: 0")} {
poststuff privmsg "bitrate switched to [lindex $bitrate 1]kbps"
}}}
bind pub - !istek istekoff
proc istekoff {nick uhost hand chan text} {
setudef flag radyocmd
if {[string match -nocase "#DJ" $chan]} {
set komut [lindex $text 0]
if {$komut == ""} { putquick "PRIVMSG #DJ :Kullanimi !istek on/off seklindedir."; return 0 }
if {[string match -nocase "on" $komut]} { channel set $chan +radyocmd; putquick "PRIVMSG #DJ 13,13.13,1 .ılı.ıl.ı 13,13. 0,3 Radyo Istekleri 0,5 Kabul Edilecek. 13,13.13,1 .ılı.ıl.ı 13,13."; return 0 }
if {[string match -nocase "off" $komut]} { channel set $chan -radyocmd; putquick "PRIVMSG #DJ 13,13.13,1 .ılı.ıl.ı 13,13. 0,3 Radyo Istekleri 0,5 Reddedilecek. 13,13.13,1 .ılı.ıl.ı 13,13."; return 0 }
}
if {[string match -nocase "#Radyo" $chan]} {
if {[lsearch -exact [channel info #DJ] +radyocmd] != -1} {
putquick "PRIVMSG #Radyo :13,13.13,1 .ılı.ıl.ı 13,13. 0,3 Isteginiz Dj'lerimize 0,5iletilmistir $nick 13,13.13,1 .ılı.ıl.ı 13,13."
putquick "PRIVMSG #DJ 13,13.13,1 .ılı.ıl.ı 13,13. 0,3 ISTEK: 0,3 $text 0,3 Istekte Bulunan 0,5Kullanici: $nick 13,13.13,1 .ılı.ıl.ı 13,13."
}
if {[lsearch -exact [channel info #DJ] +radyocmd] == -1} {
putquick "PRIVMSG #Radyo 13,13.13,1 .ılı.ıl.ı 13,13. 0,3 Üzgünüz, Dj'miz Istekleri Kabul 0,5Etmemektedir $nick 13,13.13,1 .ılı.ıl.ı 13,13."
}
}
}
proc join_greet {nick uhost handle channel} {
putserv "NOTICE $nick : 0,12 Radyo IRC-FM'e Hos Geldiniz $nick! 9,1 Isteklerinizi Radyo Kanalina 1,8 !istek <İstediginiz Sarki ve Mesajiniz> 0,3 Seklinde Yazabilirsiniz. 0,5 Ornek: !istek Sanatçı - İstek Şarkınız - Tum Sevenlere Gelsin. "
}
bind join - * join_greet
bind pub - !sifre sifre
proc sifre {n u h c a} {
global gnick
set gnick $n
set kanal [lindex $a ]
putquick "PRIVMSG #Dj 10İRC-FM Radyo Bilgileri"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 10Ip : 4 185.255.92.119"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 10Port : 4port"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 10Sifre : şifre"
}
bind pub - !saatler saatler
proc saatler {n u h c a} {
global gnick
set gnick $n
set kanal [lindex $a ]
putquick "PRIVMSG #Dj #Dj irctr-Fm Yayın Akışı"
putquick "PRIVMSG #Dj"
putquick "PRIVMSG #Dj 6-----------------------------------------------------------------------------"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6Saat 12 10:00 - 12:00 6Arası - 13 13"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6-----------------------------------------------------------------------------"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6Saat 12 12:00 - 14:00 6Arası - "
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6-----------------------------------------------------------------------------"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6Saat 12 14:00 - 16:00 6Arası - 12 13"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6-----------------------------------------------------------------------------"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6Saat 12 16:00 - 18:00 6Arası - "
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6-----------------------------------------------------------------------------"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6Saat 12 18:00 - 20:00 6Arası - 12"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6-----------------------------------------------------------------------------"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6Saat 12 20:00 - 22:00 6Arası - 12 13"
putquick "PRIVMSG #Dj 6-----------------------------------------------------------------------------"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6Saat 12 22:00 - 00:00 6Arası - "
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6-----------------------------------------------------------------------------"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6Saat 12 00:00 - 02:00 6Arası - "
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6-----------------------------------------------------------------------------"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6Saat 12 02:00 - 04:00 6Arası - "
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6-----------------------------------------------------------------------------"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6Saat 12 04:00 - 06:00 6Arası - 12 13"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6-----------------------------------------------------------------------------"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6Saat 12 06:00 - 10:00 6Arası - 12& 13"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6-----------------------------------------------------------------------------"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6Joker 7,1"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6-----------------------------------------------------------------------------"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6Joker 7,1 "
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6-----------------------------------------------------------------------------"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 4Misafir "
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6-----------------------------------------------------------------------------"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6Not 0,4Dj Saatleri Programci Arkadaslardan Alinip Eklenicektir."
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 6-----------------------------------------------------------------------------"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 4IRC-2FM 1Radyo Sorumlusu 13IRC-FM"
6-----------------------------------------------------------------------------"
}
bind pub - !dj dj
proc dj {n u h c a} {
global gnick
set gnick $n
set kanal [lindex $a ]
putserv "PRIVMSG #Dj 1Dj Olarak Girişiniz Onaylanmıştır "
}
bind pub - !kurallar kurallar
proc kurallar {n u h c a} {
global gnick
set gnick $n
set kanal [lindex $a ]
putquick "PRIVMSG #Dj ----------------------"
putquick "PRIVMSG #Dj - Dj Kuralları"
putquick "PRIVMSG #Dj - 1. Sevgi ve saygi."
putquick "PRIVMSG #Dj - 2. Dinleyiciler ile kavga edilmeyecek ya da sert tartismalara girilmeyecek. Herhangi bir sorun oldugunda sunucudaki yetkililere bildirilecek."
putquick "PRIVMSG #Dj - 3. Dj sohbet odasinda radyo odasinda Dj'ler birbirlerine emir kipi cumleler kurmayacak. Yayin alis ve bırakislarda mutlaka iletisim icinde olunacak. Gorulen hata varsa bile, uygun bir dille genelde degil ozelde konusulacak."
putquick "PRIVMSG #Dj - 4. Yayinlarda DJ arkadaslar birbirlerine destek olmak amaciyla radyo yayinlarini dinlemeli ve istekte bulunmali ki, diger arkadaslar icin ozendirici olsun."
putquick "PRIVMSG #Dj - 5. YAYIN SAATLERINE UYUM: Yayin saatlerine azami olcude uyulmali, gelinemeyecek durumlarda bilgi verilmeli."
putquick "PRIVMSG #Dj - 6. Yayin alis-verislerde diger Dj arkadaslarin hakkina saygi gosterimeli. Yayin suresinin bitiminden sonra, en fazla 5 dakika icinde yayin siradaki arkadasa devredilmeli."
putquick "PRIVMSG #Dj - 7. Yayin sirasinda yayinin patronu Dj arkadaslarımizidir. Ancak siyasi propaganda niteliginde sarki ve marslar ile takim marslari calinmamali. Kufur-argo iceren sarkilarin da yayinlanmamasinda ozen gosterilmeli."
putquick "PRIVMSG #Dj - 8. Yayindan Dj arkadaslarimiz keyif almali ki, yayini dinleyenlere de keyif verebilsin. Yayindan alacaginiz keyif, basariyi getirecektir arkadaslar."
putquick "PRIVMSG #Dj - 9. Msn'lerde ve facelerde yayinlarinizi duyurun ki, dinleyici sayimizda artma olsun."
putquick "PRIVMSG #Dj - IRC-FM; Herkese iyi calismalar dilerim. Sevgiler saygilar..."
putquick "PRIVMSG #Dj ----------"
}
bind pub - !linkat linkat
proc linkat {n u h c a} {
global gnick
set gnick $n
set kanal [lindex $a ]
putquick "allsend all private nflash RadyoDinle 0,13 - 0,14 irctr Fm'i Canlı olarak Winamptan dinlemek için, 0,13 - 0,13 - 0,6 http://Radyo.irctr.org:8042/listen.pls 0,13 - 0,13 - 0,14 adresine tıklayınız.. 0,13 - "
}
bind pub - !djalim djalim
proc djalim {n u h c a} {
global gnick
set gnick $n
set kanal [lindex $a ]
putquick "allsend all private nflash DjAlim 0,13 - 0,14 irctr Fm Dj Alımları Başlamıştır 0,13 - 0,13 - 0,6 Muracat için 0,13 - 0,13 - 13,1Radyo SorumLumuz 13,1irctrFM ile görüsebilirsiniz... 0,13 - "
}
bind pub - !mobil mobil
proc mobil {n u h c a} {
global gnick
set gnick $n
set kanal [lindex $a ]
putquick "allsend all private nflash MobiL 4,4 0,4 »º» 0,111,11*10,1 irctr13F0M ' i 4¬ 15,1CanLı OLarak 4¬ 0,1Winamptan Yada Telefondan DinLemek İçin LinKe TıkLayabiLirSiniz .. 4,1»0 4,1 http://Radyo.irctr.org:8042/listen.pls 0,4 »º» 4,4 "
}
bind pub - !indir indir
proc indir {n u h c a} {
global gnick
set gnick $n
set kanal [lindex $a ]
putquick "allsend all private nflash İndir 4,4 0,4 »º» 0,111,11*10,1 irctr13F0M ' i 4¬ 15,1CanLı OLarak 4¬ 0,1Eger Sizde TeLefondan Radyo Yayinini Dinlemek istiyoyorsaniz Androitli Telefonlar için4,1 AppLe yada Play Store den .. 4,1»0 0,4 ServerStream , xiialive , BSPlayer Free indirerek sizde bizlere katilabilirsiniz.. 0,4 »º» 4,4 "
}
bind pub - !bilgi bilgi
proc bilgi {n u h c a} {
global gnick
set gnick $n
set kanal [lindex $a ]
putquick "PRIVMSG #Dj -------------------------------------"
putquick "PRIVMSG #Dj - !bilgi : radyo hakkinda bilgi verir."
putquick "PRIVMSG #Dj - !kickradyo :oto yayın`ı veya yayındaki dj`i killer."
putquick "PRIVMSG #Dj - !istek on/off : istek saatini acma kapama ozelligi. komutlar ; (!istekon , !istekoff)"
putquick "PRIVMSG #Dj - !sifre : radyo sifre ve port'u verir."
putquick "PRIVMSG #Dj - !linkat : sunucu geneline radyo link'i atar."
putquick "PRIVMSG #Dj - !reklam nick : Yayında olan dj , Radyo linkini özellere gönderir."
putquick "PRIVMSG #Dj - !djalim : sunucu geneline dj alimi vardir diye global atar."
putquick "PRIVMSG #Dj - !var nick : nick'in isteginin siraya alindigini belirtir."
putquick "PRIVMSG #Dj - !yok nick : nick'in isteginin olmadigini belirtir."
putquick "PRIVMSG #Dj - !calma nick : nick'e istek alinmadigini belirtir."
putquick "PRIVMSG #Dj - !saatler : Dj yayin saatleri ekleme ve saatleri uzerinde bilgi verir."
putquick "PRIVMSG #Dj - !kurallar : Dj arkadaslarin uymasi gereken kurallar."
putquick "PRIVMSG #Dj ----------------------"
}
#gerekli bindler
bind pub - !yok yok
bind evnt - init-server baglan_yap
proc baglan_yap {type} {
global inick ipass
putserv "OPER $inick $ipass"
putserv "WALLOPS :Basari ile Login Oldum :)"
}
proc yok {n u h c a} {
global gnick
set gnick $n
set kanal [lindex $a ]
putserv "PRIVMSG #Radyo 0,14 • ¤ ¤ ¤ 0,3 $kanal : Üzgünüm İstediğiniz Şarkı Mevcut Değildir 0,5Dilerseniz Başka Bir İstek Şarkısı İsteyebilirsiniz 0,14 ¤ ¤ ¤ •"
}
#gerekli bindler
bind pub - !calma calma
bind evnt - init-server baglan_yap
proc baglan_yap {type} {
global inick ipass
putserv "OPER $inick $ipass"
putserv "WALLOPS :Basari ile Login Oldum :)"
}
proc calma {n u h c a} {
global gnick
set gnick $n
set kanal [lindex $a ]
putserv "PRIVMSG #Radyo 0,14 • ¤ ¤ ¤ 0,3 $kanal : Üzgünüm Şuanda Istek Alınmamaktadir. 0,5Dilerseniz Başka Bir zaman tekrar istekde bulunabilirsiniz 0,14 ¤ ¤ ¤ •"
}
#gerekli bindler
bind pub - !var var
bind evnt - init-server baglan_yap
proc baglan_yap {type} {
global inick ipass
putserv "OPER $inick $ipass"
putserv "WALLOPS :Basari ile Login Oldum :)"
}
proc var {n u h c a} {
global gnick
set gnick $n
set kanal [lindex $a ]
putserv "PRIVMSG #Radyo 0,14 • ¤ ¤ ¤ 0,3 $kanal : İstediğiniz Şarkı Mevcut Çalma Listesine 0,5Alınmıştır. Teşekkür Ederiz 0,14 ¤ ¤ ¤ •"
}
#gerekli bindler
bind pub - !reklam reklam
bind evnt - init-server baglan_yap
proc baglan_yap {type} {
global inick ipass
putserv "OPER $inick $ipass"
putserv "WALLOPS :Basari ile Login Oldum :)"
}
proc reklam {n u h c a} {
global gnick
set gnick $n
set kanal [lindex $a ]
putserv "allsend all private nflash IRC-FM 13,1 Müzigin Kalbi 0,1IRC FM'13,1de ATiyor Dinlemek Icin => 9,1 http://Radyo.irctr.org:8042/listen.pls 13,1 Adresini TikLayabiLirsiniz....0,1 irctr Fm'e13,1 Hos Geldiniz Suanda Yayinda Olan 9,1 DJ' 13,1Miz 0,1 ($kanal)9,1 Isteklerinizi Radyo kanalina 1,8 !istek <istediginiz sarki ve mesajiniz> 0,3 seklinde yazabilirsiniz. 0,5 Ornek: !istek İsmail Yk - Seviyorum - Tum Sevenlere gelsin. "
}
bind pub - !mobil mobil
proc mobil {n u h c a} {
global gnick
set gnick $n
set kanal [lindex $a ]
putquick "allsend all private nflash MobiL 4,4 0,4 »º» 0,111,11*10,1 IRC13F0M ' i 4¬ 15,1CanLı OLarak 4¬ 0,1Winamptan Yada Telefondan DinLemek İçin Linke TıkLayabilirSiniz .. 4,1»0 4,1 http://Radyo.irctr.org:8042/listen.pls 0,4 »º» 4,4 "
}