Demande d'aide sur Shoutcast1.03.tcl

cerbere17 Messages postés 2 Date d'inscription samedi 26 juin 2004 Statut Membre Dernière intervention 13 juin 2008 - 13 juin 2008 à 19:00
elbig25 Messages postés 2 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 16 mars 2011 - 16 mars 2011 à 00:51
Bonjour,

J'aimerai avoir de l'aide pour ce tcl qui fonctionnait tres bien avant mais depuis sa re-installation il ne fonctionne plus. En partyline j'ai ce message d'erreur qui apparait :

<15Pandore> shoutcast: checking if stream is online
<15Pandore> Tcl error [isonline]: can't read "streamstatus": no such variable

Je vous remercie d'avance de l'aide que vous pourriez m'apporter. Je vous fais un copier/coller du script en question :


##########
# config #
##########

set radiochans "#RadiO_SyLeNe"
set adminchans "#RadiO_SyLeNe"
set streamip "fusion-radio.dyn-o-saur.com"
set streamport "8000"
set streampass "xxxxxxxx"
set scstatstrigger "!statszik"
set scstreamtrigger "!radio"
set scplayingtrigger "!zikencours"
set sclistenertrigger "!audience"
set scdjtrigger "!dj"
set scsetdjtrigger "!setdj"
set scunsetdjtrigger "!unsetdj"
set scwishtrigger "!jeveux"
set scgreettrigger "!greet"
set sclastsongstrigger "!lastsongs"
set schelptrigger "!aidezik"

set alertadmin ""
set doalertadmin "1"

set announce "1"

set urltopic "1"
set ctodjc "1"
set tellsongs "1"
set tellusers "1"
set tellbitrate "1"

set advertise "1"
set advertiseonlyifonline "1"

set offlinetext "\0034Radio Sylene est maintenant éteinte."
set offlinetopic "0,4 RADIO éteinte momentanément<------0,13X0,13X.:Š13,0 R0,13A13,0D0,13 I 13,0O0,13Š:.X0,6 Radio Sylene, 0Radio Officielle du Serveur Sylène ! 13,0 RADIO OFF 7 0,13X.:Š13,0 R0,13A13,0D0,13 I 13,0O0,13Š:.X"

set onlinetext "3Radio Sylene est maintenant allumée.7Cliquez sur 12http://$streamip:$streamport/listen.pls 7et montez le son !"
set onlinetopic "0,4 RADIO de retour pour Votre Plaisir<------0,13X0,13X.:Š13,0 R0,13A13,0D0,13 I 13,0O0,13Š:.X0,6 Radio Sylene, 0Radio Officielle du Serveur Sylène ! 13,0 RADIO ON 7 0,13X.:Š13,0 R0,13A13,0D0,13 I 13,0O0,13Š:.X"

set streamtext "\0037Pour écouter Radio Sylene, cliquez ici: 12http://$streamip:$streamport/listen.pls\"

set advertisetext "\0037Pour écouter Radio Sylene, cliquez ici: 12http://$streamip:$streamport/listen.pls"

# 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 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 - "?1 * * * *" advertise
bind nick D * djnickchange


set dj ""
set surl ""
set bitrate ""
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 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]]
}}
close $sock
}
if { $streamstatus == "1" } { return 1 } else { return 0 }
}




proc poststuff { mode text } {
global radiochans dj
set curlist "0"
set curhigh "0"
set surl ""
set cursong ""
set sgenre ""
set bitrate "0"
set stitle ""

set temp [open "isonline" r]
while {[eof $temp] != 1} {
set zeile [gets $temp]
if {[string first "curlist:" $zeile] != -1 } { set curlist $zeile }
if {[string first "curhigh:" $zeile] != -1 } { set curhigh $zeile }
if {[string first "cursong:" $zeile] != -1 } { set cursong [lrange $zeile 1 [llength $zeile]]] }
if {[string first "sgenre:" $zeile] != -1 } { set sgenre [lrange $zeile 1 [llength $zeile]]}
if {[string first "serverurl:" $zeile] != -1 } { set surl [lindex $zeile 1] }
if {[string first "bitrate:" $zeile] != -1 } { set bitrate [lindex $zeile 1] }
if {[string first "stitle:" $zeile] != -1 } { set stitle [lindex $zeile 1] }
}
close $temp

regsub -all "/stitle/" $text "$stitle" text
regsub -all "/curlist/" $text "$curlist" text
regsub -all "/curhigh/" $text "$curhigh" text
regsub -all "/cursong/" $text "$cursong" text
regsub -all "/sgenre/" $text "$sgenre" text
regsub -all "/surl/" $text "$surl" text
regsub -all "/bitrate/" $text "$bitrate" text
regsub -all "/dj/" $text "$dj" text

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"}
}}}


proc schelp { target } {
global scstatstrigger scstreamtrigger scplayingtrigger scdjtrigger sclastsongstrigger scwishtrigger scgreettrigger sclistenertrigger
putserv "notice $target :Voici la liste de commandes à votre disposition:"
putserv "notice $target :$scstatstrigger - $scstreamtrigger - $scplayingtrigger - $scdjtrigger - $sclastsongstrigger - $scwishtrigger - $scgreettrigger - $sclistenertrigger"
putserv "notice $target :shoutcast.tcl by domsen <domsen@domsen.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 advertiseonlyifonline
if {$advertise "1" && $advertiseonlyifonline "0"} { poststuff privmsg "$advertisetext" }
if {$advertise "1" && $advertiseonlyifonline "1" && [status] == 1} { poststuff privmsg "$advertisetext" }
}


proc setdj {nickname djnickname } {
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
if { [status] == "1" } { poststuff privmsg "$djnickname est maintenant aux platines, Montez le son !"
if { $::ctodjc == "1" } {
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
}
} else {
putserv "privmsg $nickname :Cette annonce n'a pas pu être faite car la radio est actuellement éteinte." }
}


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
unset dj ""
file delete dj
putserv "notice $nick :dj effacé"
}



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 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 "" 0 $bl] [shrink - 1 "

" 0 $bl]]
set maxl [string range $bl [shrink + 14 "<MAXLISTENERS>" 0 $bl] [shrink - 1 "</MAXLISTENERS>" 0 $bl]]
set avgtime [string range $bl [shrink + 13 "" 0 $bl] [shrink - 1 "" 0 $bl]]
}}
close $sock
putserv "notice $target :Il y a actuellement $repl auditeurs, le maximum d'auditeurs est de $maxl, notre pique d'auditeurs était de $curhigh , la durée d'écoute la plus longue est de $avgtime"
}}

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 :tu as oublié d'ajouter son souhait"; 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 :Désolé, la radio est actuellement éteinte" }
}


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 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 "et" 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 "" $songs "" songs
regsub -all "

" $songs "" songs
regsub -all {\d} $songs "" songs

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 "Ä" $songs "Ä" songs
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 "ê" $songs "ê" songs
regsub -all "ï" $songs "ï" songs
regsub -all "â" $songs "â" songs
regsub -all "î" $songs "î" songs
regsub -all "ù" $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"
putserv "notice $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 :Tu as oublié d'ajouté ton message d'entrée"; 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 :Désolé, la radio est actuellement éteinte" }
}


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 est aux platines !"
} else { putserv "notice $target :Désolé, il n'y a pas de nom de dj" }
} else { putserv "notice $target :Désolé, la radio est actuellement éteinte" }
}



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-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 "" 0 $bl] [shrink - 1 "

" 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 " " 0 $bl] [shrink - 1 " " 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 "" 0 $bl] [shrink - 1 "" 0 $bl]]
set irc [string range $bl [shrink + 5 " " 0 $bl] [shrink - 1 " " 0 $bl]]
set icq [string range $bl [shrink + 5 "" 0 $bl] [shrink - 1 "" 0 $bl]]
if {$icq = = 0} { set icq "N/A" }
set aim [string range $bl [shrink + 5 "" 0 $bl] [shrink - 1 "" 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 "aucun" }
putserv "notice $target :$stitle$sgenre est allumée, la version du script shoutcast est $version, le taux d'échantillonage est de $bitrate kbps et votre dj est $dj. Allez faire un tour sur $surl"
} else {
putserv "notice $target :$stitle$sgenre est actuellement éteinte, la version du script shoutcast est $version et le taux d'échantillonage est de $bitrate kbps. Allez faire un tour sur $surl" }
putserv "notice $target :Il y a actuellement $repl auditeurs, le maximum d'auditeurs possible est de $maxl et le pique d'auditeurs était de $curhigh."
putserv "notice $target :La durée d'écoute la plus longue est de $avgtime secondes, our stream had $webhits webhits and $streamhits streamhits."
putserv "notice $target :Contactez-nous sur IRC en allant sur le salon $irc , avec aim sur le $aim et avec icq avec le numéro $icq."
}}
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 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 "et" 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
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} {
# putserv "notice $target :7Vous écoutez actuellement: $songtitle$songurl"
putserv "notice $target :7Vous écoutez actuellement: $songtitle"
} else {
putserv "notice $target :Le serveur est actuellement éteint, désolé."
}}}
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 1 || $tellsongs 1 || $tellusers == 1 || $tellbitrate == 1} {
set isonlinefile "isonline"
set oldisonline "isonline: 0"
set oldcurlist "curlist: 0"
set oldcurhigh "curhigh: 0"
set oldsong "cursong: 0"
set oldbitrate "bitrate: 0"
if {[file exists $isonlinefile]} {
putlog "shoutcast: checking if stream is online"
set temp [open "isonline" r]
while {[eof $temp] != 1} {
set zeile [gets $temp]
if {[string first "isonline:" $zeile] != -1 } { set oldisonline $zeile }
if {[string first "curlist:" $zeile] != -1 } { set oldcurlist $zeile }
if {[string first "curhigh:" $zeile] != -1 } { set oldcurhigh $zeile }
if {[string first "cursong:" $zeile] != -1 } { set oldsong $zeile }
if {[string first "bitrate:" $zeile] != -1 } { set oldbitrate $zeile }
}
close $temp
}


if {[catch {set sock [socket $streamip $streamport] } sockerror]} {
putlog "error: $sockerror"
return 0} else {
puts $sock "GET /admin.cgi?pass=$streampass&mode=viewxml&page=0 HTTP/1.0"
puts $sock "User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)"
puts $sock "Host: $streamip"
puts $sock "Connection: close"
puts $sock ""
flush $sock
while {[eof $sock] != 1} {
set bl [gets $sock]
if { [string first "standalone" $bl] != -1 } {
set streamstatus "isonline: [string range $bl [shrink + 14 "<STREAMSTATUS>" 0 $bl] [shrink - 1 "</STREAMSTATUS>" 0 $bl]]"
set repl "curlist: [string range $bl [shrink + 19 "<REPORTEDLISTENERS>" 0 $bl] [shrink - 1 "</REPORTEDLISTENERS>" 0 $bl]]"
set curhigh "curhigh: [string range $bl [shrink + 15 "" 0 $bl] [shrink - 1 "

" 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 " " 0 $bl] [shrink - 1 " " 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 == 1 } {
if {$streamstatus "isonline: 0" && $oldisonline "isonline: 1"} {
poststuff privmsg $offlinetext
if {$doalertadmin == "1"} { sendnote domsen $alertadmin "La radio est maintenant éteinte" }
if {$urltopic == 1} { poststuff topic $offlinetopic }
}
if {$streamstatus "isonline: 1" && $oldisonline "isonline: 0" } {
if {$sgenre != ""} {
set sgenre " ([lrange $sgenre 1 [llength $sgenre]] )"
}
poststuff privmsg "$onlinetext"
if {$urltopic == 1} { poststuff topic "$onlinetopic" }
}}
if {($tellusers 1) && ($streamstatus "isonline: 1") && ($oldcurhigh != "curhigh: 0") } {
if {$oldcurhigh != $curhigh} {
poststuff privmsg "7Nouveau pique d'auditeurs:5 [lindex $curhigh 1]"
}
if {$oldcurlist != $repl} {
poststuff privmsg "7Il y a actuellement5 [lindex $repl 1] ($currentl) 7auditeurs"
}}
if {($tellsongs == 1) && ($oldsong != $cursong) && ($streamstatus == "isonline: 1") } {
if {$songurl != ""} { set songurl " ($songurl)"}
regsub -all "<" $cursong "<" cursong
regsub -all ">" $cursong ">" cursong
regsub -all "&" $cursong "et" cursong
regsub -all """ $cursong """ cursong
regsub -all "'" $cursong "'" cursong
regsub -all "ÿ" $cursong "" cursong
regsub -all "´" $cursong "Ž" cursong
regsub -all "–" $cursong "-" cursong
regsub -all "ö" $cursong "ö" cursong
regsub -all "ä" $cursong "ä" cursong
regsub -all "ü" $cursong "ü" cursong
regsub -all "Ö" $cursong "Ö" cursong
regsub -all "Ä" $cursong "Ä" cursong
regsub -all "Ü" $cursong "Ü" cursong
regsub -all "ß" $cursong "ß" cursong
regsub -all "à" $cursong "à" cursong
regsub -all "ç" $cursong "ç" cursong
regsub -all "è" $cursong "è" cursong
regsub -all "é" $cursong "é" cursong
regsub -all "ê" $cursong "ê" cursong
regsub -all "ï" $cursong "ï" cursong
regsub -all "â" $cursong "â" cursong
regsub -all "î" $cursong "î" cursong
regsub -all "ù" $cursong "ù" cursong
putlog $cursong
# poststuff privmsg "7Vous écoutez actuellement: [lrange $cursong 1 [llength $cursong]]$songurl"
poststuff privmsg "7Vous écoutez actuellement: [lrange $cursong 1 [llength $cursong]]"
}

if {($tellbitrate == 1) && ($oldbitrate != $bitrate) && ($streamstatus == "isonline: 1") && ($oldbitrate != "bitrate: 0")} {
poststuff privmsg "7Taux d'échantillonnage réglé à [lindex $bitrate 1]kbps"
}}}

putlog "*** shoutcast.tcl v1.03 by domsen <domsen@domsen.org> succesfully loaded. turn it up baby."

2 réponses

cs_julien154 Messages postés 52 Date d'inscription lundi 29 décembre 2008 Statut Membre Dernière intervention 26 novembre 2009
15 mars 2009 à 22:37
lol radio syléne je conais bien syléne toujour besoin d'aide dit moi le
0
elbig25 Messages postés 2 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 16 mars 2011
16 mars 2011 à 00:51
Bonjour ou Bonsoir !!! j'ai le même problème que
cerbere17 a propos de shoutcast: checking if stream is online tout le reste fonctionne super bien mais en party line je recois toujours cette erreur la et j'avous que je ne sais pas comment reglé ca !! si vous avez une idée je suis preneur merci beaucoup d'avance bye bye
0
Rejoignez-nous