Giriş

Orijinalini görmek için tıklayınız : Sorunsuz Radyo.tcl


Ahmet
01 Şubat 2015, 23:57
set radiochans "#Radyo"
set streamip "37.123.101.107"
set streamport "8080"
set streampass "xkorsanx"
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 "15,1Radyo yayinimiza DJ degisikligi sebebi ile ara verdik lutfen bir sure bekleyiniz.. "
set offlinetopic "15,1Radyo yayinimiza DJ degisikligi sebebi ile ara verdik lutfen bir sure bekleyiniz.. "

set onlinetext "0,4 ** 9,1 Radyomuzu Winamp'ten dinlemek icin tiklayin 0,4 >>> 12[Only Registered Users Can See Links]"
set onlinetopic "0,4 ** 9,1 Radyomuzu Winamp'ten dinlemek icin tiklayin 0,4 >>> 12[Only Registered Users Can See Links]"

set streamtext "0,4 ** 9,1 Radyomuzu Winamp'ten dinlemek icin tiklayin 0,4 >>> 12[Only Registered Users Can See Links]"

set advertisetext "2 Radyo için Gerekli biLgiLer 7 !durum - !istek -!link - !calan - !dinleyen"

# 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 start bl} { return [expr [string first "$string" $bl $start] $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 Yapimcisi 4By SekerShell Internet Hizmetleri Web Adresimiz 4[Only Registered Users Can See Links]"
}

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 [Only Registered Users Can See Links]"
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 [Only Registered Users Can See Links]"
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 15,1Suan yayinimizi dinleyen kisi sayisi 1,15 ([expr $repl + 10]) "
}}

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 [Only Registered Users Can See Links]"
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 [Only Registered Users Can See Links]"
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 "&#x3C;" $songs "<" songs
regsub -all "&#x3E;" $songs ">" songs
regsub -all "&#x26;" $songs "+" songs
regsub -all "&#x22;" $songs "\"" songs
regsub -all "&#x27;" $songs "'" songs
regsub -all "&#xFF;" $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 [Only Registered Users Can See Links]"
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 [Only Registered Users Can See Links]"
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 [Only Registered Users Can See Links]"
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 "&#x3C;" $songtitle "<" songtitle
regsub -all "&#x3E;" $songtitle ">" songtitle
regsub -all "&#x26;" $songtitle "+" songtitle
regsub -all "&#x22;" $songtitle "\"" songtitle
regsub -all "&#x27;" $songtitle "'" songtitle
regsub -all "&#xFF;" $songtitle "" songtitle
regsub -all "&#xB4;" $songtitle "´" songtitle
regsub -all "&#x96;" $songtitle "-" songtitle
regsub -all "&#xF6;" $songtitle "ö" songtitle
regsub -all "&#xE4;" $songtitle "ä" songtitle
regsub -all "&#xFC;" $songtitle "ü" songtitle
regsub -all "&#xD6;" $songtitle "Ö" songtitle
regsub -all "&#xC4;" $songtitle "Ä" songtitle
regsub -all "&#xDC;" $songtitle "Ü" songtitle
regsub -all "&#xDF;" $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 :4,4 0,1 Radyo DJlermizden »»» 4,1 $stitle$sgenre 0,1««« Suanda Online."
} else {
putserv "privmsg #radyo :4,4 0,1 Radyo DJlermizden »»» 4,1 $stitle$sgenre 0,1««« Suanda Offline."
putserv "privmsg #radyo :-" }
putserv "privmsg #radyo :-"
putserv "privmsg #radyo :4,4 0,1 Radyo 4Asksehri 0Calan Parca:4 $songtitle "
putserv "privmsg #radyo :4,4 0,1 Radyomuzun Dinlenme Orani: 4,1 ([expr $repl + 10]) 0kisi dinliyor 4rekor: ([expr $curhigh + 10]) "
putserv "privmsg #radyo :-"
putserv "privmsg #radyo :4,4 0,1 Radyomuzu Winamp'tan dinlemek icin 4,1|0 4,1[Only Registered Users Can See Links] "
putserv "privmsg #radyo :-"
putserv "privmsg #radyo :4,4 0,1 Radyomuzu Web'ten dinlemek icin 4,1|0 4,1[Only Registered Users Can See Links] "
putserv "privmsg #radyo :-"
putserv "privmsg #radyo :4,4 0,1 Dünya'nın en güncel, Türkiye'nin en hit IRC Platformu 4,1|0 4,1 [Only Registered Users Can See Links] "
}}
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 dj
putlog "shoutcast: $target Asksehried 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 [Only Registered Users Can See Links]"
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 "&#x3C;" $songtitle "<" songtitle
regsub -all "&#x3E;" $songtitle ">" songtitle
regsub -all "&#x26;" $songtitle "+" songtitle
regsub -all "&#x22;" $songtitle "\"" songtitle
regsub -all "&#x27;" $songtitle "'" songtitle
regsub -all "&#xFF;" $songtitle "" songtitle
regsub -all "&#xB4;" $songtitle "´" songtitle
regsub -all "&#x96;" $songtitle "-" songtitle
regsub -all "&#xF6;" $songtitle "ö" songtitle
regsub -all "&#xE4;" $songtitle "ä" songtitle
regsub -all "&#xFC;" $songtitle "ü" songtitle
regsub -all "&#xD6;" $songtitle "Ö" songtitle
regsub -all "&#xC4;" $songtitle "Ä" songtitle
regsub -all "&#xDC;" $songtitle "Ü" songtitle
regsub -all "&#xDF;" $songtitle "ß" songtitle

if {$streamstatus == 1} {
putserv "privmsg #radyo :13,1 Suan Calan Sarkı 11,1 $songtitle$songurl"
} else {
putserv "privmsg #radyo :13,1Uzgunum Suan Sarkı Çalmıyor Yayında 4,1 Dj 13,1 yok"
}}}
close $sock
}}

proc msg_playing { nick uhost hand arg } { 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 [Only Registered Users Can See Links]"
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 >>> 12[Only Registered Users Can See Links]"
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 "15,1 Yayinimizi dinleyen kisi sayisi : ([expr $repl + 10])"
}
if {$oldcurlist != $repl} {
poststuff privmsg "7,1Suan yayinimizi dinleyen kisi sayisi 15,1 ([expr $repl + 10]) "
}}
if {($tellsongs == 1) && ($oldsong != $cursong) && ($streamstatus == "isonline: 1") } {
if {$songurl != ""} { set songurl " ($songurl)"}
regsub -all "&#x3C;" $cursong "<" cursong
regsub -all "&#x3E;" $cursong ">" cursong
regsub -all "&#x26;" $cursong "+" cursong
regsub -all "&#x22;" $cursong "\"" cursong
regsub -all "&#x27;" $cursong "'" cursong
regsub -all "&#xFF;" $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 "4,4 0,1 Radyo DJlermizden »»» 4,1 $stitle 0,1««« Suanda Online."
poststuff privmsg "-"
poststuff privmsg "4,4 0,1 Radyo 4Asksehri 0Calan Parca:4 [lrange $cursong 1 [llength $cursong]]$songurl "
poststuff privmsg "4,4 0,1 Radyomuzun Dinlenme Orani: 4,1 ([expr $repl + 10]) 0kisi dinliyor 4rekor: ([expr $curhigh + 10]) "
poststuff privmsg "-"
poststuff privmsg "4,4 0,1 Radyomuzu Winamp'tan dinlemek icin 4,1|0 4,1[Only Registered Users Can See Links] "
poststuff privmsg "-"
poststuff privmsg "4,4 0,1 Radyomuzu Web'ten dinlemek icin 4,1|0 4,1[Only Registered Users Can See Links] "
poststuff privmsg "-"
poststuff privmsg "4,4 0,1 Dünya'nın en güncel, Türkiye'nin en hit IRC Platformu 4,1|0 4,1 [Only Registered Users Can See Links]"
}

if {($tellbitrate == 1) && ($oldbitrate != $bitrate) && ($streamstatus == "isonline: 1") && ($oldbitrate != "bitrate: 0")} {
poststuff privmsg "bitrate switched to [lindex $bitrate 1]kbps"
}}}



bind pub - !istek istek

proc istek {n u h c a} {
global gnick
set gnick $n
set kanal [lindex $a ]
putserv "PRIVMSG #DJ 4İstek İsteyen 2$gnick4 İsteği:2 $kanal"
putserv "PRIVMSG #Radyo : 4Isteginiz DJ'lerimize iletilmistir 2$gnick 5( $kanal ) "
}



proc join_greet {nick uhost handle channel} {
putserv "NOTICE $nick : 0,12 Radyo Radyo-Fm'e hos geldiniz $nick! 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. "
putserv "NOTICE $nick : 10Radyomuzu dinlemek icin tiklayin: 12[Only Registered Users Can See Links]"
}

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 10Radyo-FM.net Radyo BiLgiLeri"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 10Ip Adresi : 4 37.123.101.107"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 10Port : 4 8080"
putquick "PRIVMSG #Dj "
putquick "PRIVMSG #Dj 10Sifre : 4 kralshell2014"
}

bind pub - !saatler saatler

proc saatler {n u h c a} {
global gnick
set gnick $n
set kanal [lindex $a ]
putquick "PRIVMSG #dj Dj Yayin Saatleri ; "
}

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 KURALLARI"
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 - Asksehri-fM; Herkese iyi calismalar dilerim. Sevgiler saygilar..."
putquick "PRIVMSG #Dj ----------"
}


bind pub - !istekon istekon

proc istekon {n u h c a} {
global gnick
set gnick $n
set kanal [lindex $a ]
putquick "PRIVMSG #radyo 0,13- 0,14 İstemiş olduğunuz isteği yayın akışında dinleyebilirsiniz 0,13 - 0,6 Radyo-Fm'den ayrılmayınız 0,13 - 0,14 Radyo-fm.net  "
}

bind pub - !istekoff istekoff

proc istekoff {n u h c a} {
global gnick
set gnick $n
set kanal [lindex $a ]
putquick "PRIVMSG #radyo 0,13- 0,14 Suan Yayınımızda istek yoktur. 0,13 - 0,6 keyifli Sohbetler dileriz 0,13 - 0,14 Radyo-FM.Net  "
}

bind pub - !linkat linkat

proc linkat {n u h c a} {
global gnick
set gnick $n
set kanal [lindex $a ]
putquick "allsend all private global RadyoDinle 0,13 - 0,14 Asksehri Fm'i Canlı olaraktan Winamptan dinlemek için, 0,13 -  0,13 - 0,6 [Only Registered Users Can See Links] 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 global DjAlim 0,13 - 0,14 Asksehri Fm Dj Alımları Başlamıştır 0,13 -  0,13 - 0,6 Muracat için 0,13 -  0,13 - 0,14 Radyo Sorumlusuyla görüsebilirsiniz... 0,13 - "
}




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 - !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 saatlerini gosterir."
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 2$kanal : 5Üzgünüm İstediğiniz Şarkı Mevcut 4Değildir1. 5Dilerseniz Başka Bir İstek Şarkısı İsteyebilirsiniz1."
}

#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 2$kanal : 5Üzgünüm Şuanda Istek Alınmamaktadir.1. 5Dilerseniz Başka Bir zaman tekrar istekde bulunabilirsiniz1."
}


#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 2$kanal : 5İstediğiniz Şarkı Mevcut Çalma Listesine Alınmıştır1. 4Teşekkür Ederiz1."
}

#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 global AsksehriFm 13,1 Müzigin Kalbi 0,1Asksehri FM'13,1de ATiyor Dinlemek Icin => 9,1 [Only Registered Users Can See Links] 13,1 Adresini TikLayabiLirsiniz....0,1 Asksehri Fm'e13,1 Hos Geldiniz Suanda Yayinda Olan 9,1 DJ' 13,1Miz 0,1 ($kanal)13,1 Isteklerinizi Radyo Kanalina 0,1!istek13,1 <istediginiz Sarki Mesajiniz> Seklinde Yazabilirsiniz. 0,1Ornek:13,1 Gece Yolculari - Unut Beni Tum0,1 AsksehriFM13,1 Ailesine Gelsin..."
}