Konu: Tcl Arşivi
Tekil Mesaj gösterimi
Alt 16 Aralık 2007, 21:48   #2
Çevrimdışı
AsiL
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Cevap: Tcl Arşivi




Radyo Tcl

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
# config ##########################
 
 
 
set radiochans "#radyo" 
 
set adminchans "#radyo" 
 
set streamip "ip-adresiniz" 
 
set streamport "port" 
 
set streampass "şifreniz"
 
set scstatstrigger "!durum"
 
set scstreamtrigger "!adres"
 
set scplayingtrigger "!calan"
 
set sclistenertrigger "!dinleyici"
 
set scdjtrigger "!dj"
 
set scsetdjtrigger "!setdj"
 
set scunsetdjtrigger "!unsetdj"
 
set scwishtrigger "!istek"
 
set scgreettrigger "!karsılama"
 
set sclastsongstrigger "!son"
 
set schelptrigger "!yardım"
 
set alertadmin ""
 
set doalertadmin "1"
 
set announce "1"
 
set urltopic "1"
 
set ctodjc "1"
 
set tellsongs "1"
 
set tellusers "1"
 
set tellbitrate "0"
 
set advertise "1"
 
set advertiseonlyifonline "1"
 
set offlinetext "1Şu anda yayınımız kesilmiştir."
 
set offlinetopic "7-1Radyo şu anda radyo yayını aktif DEĞİLDİR! http://$streamip:$streamport/listen.pls"
 
set onlinetext "7-1Radyoda şu anda yayında Dj 12/sgenre/1 arkadaşımız var. Radyoyu dinlemek için 12http://$streamip:$streamport/listen.pls1 link adresine tıklayınız!"
 
set onlinetopic "7-1Radyo yayını şu anda 12AKTİF1. Radyoyu dinlemek için 12http://$streamip:$streamport/listen.pls1 link adresine tıklayınız!"
 
set streamtext "1Sizde Dinleyin! 2 /dj/ 4http://$streamip:$streamport/listen.pls"
 
set advertisetext "15-14- 1Radyo 12http://$streamip:$streamport/listen.pls 14-15-"
 
 
 
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 D $scunsetdjtrigger pub_unsetdj
 
bind msg D $scunsetdjtrigger msg_unsetdj
 
 
 
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
 
 
 
set dj 
""
 
set surl "http://$streamip:$streamport/listen.pls"
 
set bitrate "48"
 
set stitle ""
 
 
 
if {[file exists dj]} {
 
set temp [open "dj" r]
 
set dj [gets $temp]
 
close $temp
 
}
 
 
 
proc shrink calc number string start bl} { return [expr [string first "$string$bl $start$calc $number] }
 
 
 
 
 
proc status { } {
 
global 
streamip streamport streampass
 
if {[catch {set sock [socket $streamip $streamport] } sockerror]} {
 
putlog "error: $sockerror"
 
return } 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] != -} {
 
set streamstatus [string range $bl [shrink 14 "<STREAMSTATUS>" 0 $bl] [shrink "</STREAMSTATUS>" 0 $bl]]
 
}}
 
close $sock
 

 
if { 
$streamstatus == "1" } { return } else { return }
 
}
 
 
 
 
 
 
 
 
 
proc poststuff mode target targetname text } {
 
global 
radiochans dj
 
set curlist 
"0"
 
set curhigh "0"
 
set surl "http://$streamip:$streamport/listen.pls"
 
set cursong ""
 
set sgenre ""
 
set bitrate "48"
 
set stitle ""
 
 
 
set temp [open "isonline" r]
 
while {[
eof $temp] != 1} {
 
set zeile [gets $temp]
 
if {[
string first "curlist:" $zeile] != -} { set curlist $zeile }
 
if {[
string first "curhigh:" $zeile] != -} { set curhigh $zeile }
 
if {[
string first "cursong:" $zeile] != -} { set cursong [lrange $zeile 1 [llength $zeile]]] }
 
if {[
string first "sgenre:" $zeile] != -} { set sgenre [lrange $zeile 1 [llength $zeile]]}
 
if {[
string first "serverurl:" $zeile] != -} { set surl [lindex $zeile 1] }
 
if {[
string first "bitrate:" $zeile] != -} { set bitrate [lindex $zeile 1] }
 
if {[
string first "stitle:" $zeile] != -} { set stitle [lindex $zeile 1] }
 
}
 
close $temp
 
 
 
regsub 
-all "/stitle/" $text "$stitletext
 
regsub 
-all "/curlist/" $text "$curlisttext
 
regsub 
-all "/curhigh/" $text "$curhightext
 
regsub 
-all "/cursong/" $text "$cursongtext
 
regsub 
-all "/sgenre/" $text "$sgenretext
 
regsub 
-all "/surl/" $text "$surltext
 
regsub 
-all "/bitrate/" $text "$bitratetext
 
regsub 
-all "/dj/" $text "$djtext
 
 
 
if {$target == "chan"} {
 
foreach 
chan [channels] {
 
if {
$radiochans == "" } { putserv "$mode $chan :$text}
 
if {
$radiochans != "" } {
 
if {([
lsearch -exact [string tolower $radiochans] [string tolower $chan]] != -1)} {putserv "$mode $chan :$text"}
 
}}}
 
if {
$target == "nick"} { putserv "$mode $targetname :$text}
 
}
 
 
 
 
 
proc schelp target } {
 
global 
scstatstrigger scstreamtrigger scplayingtrigger scdjtrigger sclastsongstrigger scwishtrigger scgreettrigger sclistenertrigger
 
putserv 
"notice $target :Uygulayabileceginiz Komutlar Asagida listelenmistir:"
 
putserv "notice $target :$scstatstrigger - $scstreamtrigger - $scplayingtrigger - $sclastsongstrigger - $scwishtrigger - $sclistenertrigger"
 
putserv "notice $target :radyo"
 
}
 
 
 
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 advertiseonlyifonline
 
if {$advertise == "1" && $advertiseonlyifonline == "0"} { poststuff privmsg chan none "$advertisetext}
 
if {
$advertise == "1" && $advertiseonlyifonline == "1" && [status] == 1} { poststuff privmsg chan none "$advertisetext}
 
}
 
 
 
 
 
proc setdj {nickname djnickname } {
 
global 
ctodjc onlinetopic
 
if {$djnickname == "" } { set djnickname $nickname }
 
global 
streamip streamport streampass dj 
 
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
 
set dj $djnickname
 
if { [status] == "1" } { poststuff privmsg chan none "$djnickname is now rocking the turntables, enjoy."
 
if { $ctodjc == "1" } { poststuff topic chan none "$onlinetopic}
 
} else {
 
putserv "privmsg $nickname :Radyo şu anda kapalıdır." }
 
}
 
 
 
proc msg_setdj nick uhost hand arg } { setdj $nick $arg }
 
proc pub_setdj nick uhost hand chan arg } { global adminchans; if {([lsearch -exact [string tolower $adminchans] [string tolower $chan]] != -1) || ($adminchans == "")} { setdj $nick $arg }}
 
 
 
proc unsetdj nick } {
 
global 
dj onlinetopic ctodjc
 
file delete dj
 
set dj 
""
 
putserv "notice $nick :dj silindi."
 
if { [status] == "1" && $ctodjc == "1" } { poststuff topic chan none "$onlinetopic}
 
}
 
 
 
proc msg_unsetdj nick uhost hand arg } { unsetdj $nick }
 
proc pub_unsetdj nick uhost hand chan arg } { global adminchans; if {([lsearch -exact [string tolower $adminchans] [string tolower $chan]] != -1) || ($adminchans == "")} { unsetdj $nick }}
 
 
 
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 } 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] != -} {
 
set repl [string range $bl [shrink 19 "<REPORTEDLISTENERS>" 0 $bl] [shrink "</REPORTEDLISTENERS>" 0 $bl]]
 
set curhigh [string range $bl [shrink 15 "<PEAKLISTENERS>" 0 $bl] [shrink "</PEAKLISTENERS>" 0 $bl]]
 
set maxl [string range $bl [shrink 14 "<MAXLISTENERS>" 0 $bl] [shrink "</MAXLISTENERS>" 0 $bl]]
 
set avgtime [string range $bl [shrink 13 "<AVERAGETIME>" 0 $bl] [shrink "</AVERAGETIME>" 0 $bl]]
 
}}
 
close $sock
 
putserv 
"notice $target :1Şu anda radyo yayınımızı $repl kişi dinlemektedir. En fazla dinleyici sayısı $maxl rakamına ulaşmıştır."
 
}}
 
 
 
proc msg_listener nick uhost hand arg } { 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 "notice $nick :you forgot to add your wish"; return 0}
 
if { [
status] == "1" } { 
 
set temp [open "djnick" r]
 
set djnick [gets $temp]
 
close $temp
 
putserv 
"privmsg $djnick WISH) - $nick - $arg"
 
} else {
 
putserv "notice $nick :Üzgünüm, şu anda radyo yayını aktif değil." }
 
}
 
 
 
 
 
proc msg_wish nick uhost hand arg } { 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 } 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] != -} {
 
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
 
 
 
regsub 
-all "&#xB4;" $songs "´" songs
 
regsub 
-all "&#x96;" $songs "-" songs
 
regsub 
-all "&#xF6;" $songs "ö" songs
 
regsub 
-all "&#xE4;" $songs "ä" songs
 
regsub 
-all "&#xFC;" $songs "ü" songs
 
regsub 
-all "&#xD6;" $songs "Ö" songs
 
regsub 
-all "&#xC4;" $songs "Ä" songs
 
regsub 
-all "&#xDC;" $songs "Ü" songs
 
regsub 
-all "&#xDF;" $songs "ß" songs
 
 
 
 
 
 
 
}}
 
close $sock
 
putserv 
"notice $target :$songs"
 
}}
 
 
 
 
 
proc msg_lastsongs nick uhost hand arg } { 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"
 
poststuff notice nick $target $streamtext
 
}
 
 
 
proc msg_stream nick uhost hand arg } { 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 "notice $nick :7-1Radyo yayını şu anda 12AKTİF1. Radyoyu dinlemek için 12http://$streamip:$streamport/listen.pls1 link adresine tıklayınız!"; return 0}
 
if { [
status] == "1" } { 
 
set temp [open "djnick" r]
 
set djnick [gets $temp]
 
close $temp
 
putserv 
"privmsg $djnick GREET) - $nick - $arg"
 
} else {
 
putserv "notice $nick :Üzgünüm, şu anda radyo yayını aktif değil." }
 
}
 
 
 
 
 
proc msg_greet nick uhost hand arg } { 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 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 dj
 
putlog 
"shoutcast: $target asked for dj info" 
 
if {[status] == 1} {
 
if {[
file exists dj]} {
 
set temp [open "dj" r]
 
set dj [gets $temp]
 
close $temp
 
putserv 
"notice $target :$dj Şu anda Yayında!"
 
} else { putserv "notice $target :Dj Adı Bulunamadı." }
 
} else { 
putserv "notice $target :Şu anda radyo aktif değildir." }
 
}
 
 
 
 
 
 
 
proc msg_dj nick uhost hand arg } { 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 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-AgentMozilla/5.0 (X11ULinux i686en-USrv:0.9.9)"
 
puts 
$sock "Host$streamip"
 
puts 
$sock "Connectionclose"
 
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]]
 
if 
{$streamstatus == 1} {
 
if {[file exists dj]} {
 
set temp [open "
dj" r]
 
set dj [gets 
$temp]
 
close 
$temp
 
} else { set dj "
none" }
 
putserv "
notice $target :$stitle$sgenre yayındaVersion$version Yayın Kalitesi$bitrate kbps DJ$sgenre Yayını Dinlemek için tıklayınızhttp://$streamip:$streamport/listen.pls"
 
} else {
 
putserv "notice $target :$stitle$sgenre yayında değildir.. Version: $version Son Yayın Kalitesi: $bitrate kbps Son Yayın Adresi : $surl}
 
putserv "notice $target :1Şu anda radyo yayınımızı $repl kişi dinlemektedir. En fazla dinleyici sayısı $maxl rakamına ulaşmıştır."
 
putserv "notice $target :Ortalama Dinlenme Suresi : $avgtime sn, Web Hit : $webhits Dinlenme Hit : $streamhits "
 
putserv "notice $target :radyo rotasız, rotasız radyonuz!"
 
}}
 
close $sock
 
}}
 
 
 
 
 
proc msg_scstat nick uhost hand arg } { 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 asked for current song"
 
if {[catch {set sock [socket $streamip $streamport] } sockerror]} {
 
putlog "error: $sockerror"
 
return } 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] != -} {
 
set streamstatus [string range $bl [shrink 14 "<STREAMSTATUS>" 0 $bl] [shrink "</STREAMSTATUS>" 0 $bl]]
 
set songtitle [string range $bl [shrink 11 "<SONGTITLE" 0 $bl] [shrink "</SONGTITLE>" 0 $bl]]
 
set songurl [string range $bl [shrink "<SONGURL>" 0 $bl] [shrink "</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 "notice $target :1Şu anda çalan şarkı: $songtitle$songurl"
 
} else {
 
putserv "notice $target :1Şu anda yayında dj 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 dj
 
global offlinetext offlinetopic onlinetext onlinetopic
 
global streamip streampass streamport dj
 
global doalertadmin alertadmin
 
 
 
if {$announce == || $tellsongs == || $tellusers == || $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] != -} { set oldisonline $zeile }
 
if {[
string first "curlist:" $zeile] != -} { set oldcurlist $zeile }
 
if {[
string first "curhigh:" $zeile] != -} { set oldcurhigh $zeile }
 
if {[
string first "cursong:" $zeile] != -} { set oldsong $zeile }
 
if {[
string first "bitrate:" $zeile] != -} { 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] != -} {
 
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 "</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 "<SONGURL>" 0 $bl] [shrink "</SONGURL>" 0 $bl]]
 
set bitrate "bitrate: [string range $bl [shrink + 9 "<BITRATE>" 0 $bl] [shrink - 1 "</BITRATE>" 0 $bl]]"
 
set stitle "stitle: [string range $bl [shrink + 13 "<SERVERTITLE>" 0 $bl] [shrink - 1 "</SERVERTITLE>" 0 $bl]]"
 
set sgenre "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 \n$stitle\n$sgenre\n$surl"
 
close $temp
 
if {$announce == } {
 
if {
$streamstatus == "isonline: 0" && $oldisonline == "isonline: 1"} {
 
poststuff privmsg chan none $offlinetext
 
if {$doalertadmin == "1"} { sendnote domsen $alertadmin "radio is now offline" }
 
if {
$urltopic == 1} { poststuff topic chan none $offlinetopic }
 
}
 
if {
$streamstatus == "isonline: 1" && $oldisonline == "isonline: 0" } {
 
if {
$sgenre != ""} {
 
set sgenre " ([lrange $sgenre 1 [llength $sgenre]] )"
 
}
 
poststuff privmsg chan none "$onlinetext"
 
if {$urltopic == 1} { poststuff topic chan none "$onlinetopic}
 
}}
 
if {(
$tellusers == 1) && ($streamstatus == "isonline: 1") && ($oldcurhigh != "curhigh: 0") } {
 
if {
$oldcurhigh != $curhigh} {
 
poststuff privmsg chan none "new listener peak: [lindex $curhigh 1]"
 
}
 
if {
$oldcurlist != $repl} {
 
poststuff privmsg chan none "1Şu anda radyo rotasızı ($currentl) kişi dinlemektedir."
 
}}
 
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
 
regsub 
-all "&#xB4;" $cursong "´" cursong
 
regsub 
-all "&#x96;" $cursong "-" cursong
 
regsub 
-all "&#xF6;" $cursong "ö" cursong
 
regsub 
-all "&#xE4;" $cursong "ä" cursong
 
regsub 
-all "&#xFC;" $cursong "ü" cursong
 
regsub 
-all "&#xD6;" $cursong "Ö" cursong
 
regsub 
-all "&#xC4;" $cursong "Ä" cursong
 
regsub 
-all "&#xDC;" $cursong "Ü" cursong
 
regsub 
-all "&#xDF;" $cursong "ß" cursong
 
putlog $cursong
 
poststuff privmsg chan none 
"7-1Yayın Yapan DJ:12 /sgenre/ 1Sıradaki Parça:12  [lrange $cursong 1 [llength $cursong]]$songurl 1Radyoyu dinlemek için 12http://$streamip:$streamport/listen.pls 1 link adresine tıklayınız!"
 
}
 
 
 
if {(
$tellbitrate == 1) && ($oldbitrate != $bitrate) && ($streamstatus == "isonline: 1") && ($oldbitrate != "bitrate: 0")} {
 
poststuff privmsg chan none "7-1Radyo yayını şu anda 12AKTİF1. Radyoyu dinlemek için 12http://$streamip:$streamport/listen.pls1 link adresine tıklayınız!"
 
}}} 


 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları eglen sohbet reklamver