This is the new home of the egghelp.org community forum.
All data has been migrated (including user logins/passwords) to a new phpBB version.


For more information, see this announcement post. Click the X in the top right-corner of this box to dismiss this message.

shoutcast 1.03 by domsen

Support & discussion of released scripts, and announcements of new releases.
Post Reply
m
moff
Voice
Posts: 27
Joined: Thu Jul 24, 2008 9:24 pm

shoutcast 1.03 by domsen

Post by moff »

hi guys,
would you help me with the advertise minutes...
i want to increase it from 10 minutes to 30 minutes...

i guess its this part

Code: Select all

bind time - "?0 * * * *" advertise

but whatever i do, it always does 10mins advertise...

please help :)

thx

Code: Select all

# shoutcast.tcl v1.03 by domsen <domsen@domsen.org> (c)2oo5



set radiochans "#schallraum #die_moffsons #party.hard"

set adminchans "#schallraum #die_moffsons #party.hard"

set streamip "trmw.stream24.fm"

set streamport "13370"

set streampass "xxxxxxxx"

set scstatstrigger ".stats"

set scstreamtrigger "!radio"

set scplayingtrigger "!playing"

set sclistenertrigger "!listeners"

set scdjtrigger "!dj"

set scsetdjtrigger "!setdj"

set scunsetdjtrigger "!unsetdj"

set scwishtrigger "!wish"

set scgreettrigger "!greet"

set sclastsongstrigger "!lastsongs"

set schelptrigger "!help"



set alertadmin "Moff"

set doalertadmin "0"



set announce "1"



set urltopic "0"

set ctodjc "0"

set tellsongs "1"

set tellusers "1"

set tellbitrate "1"



set advertise "1"

set advertiseonlyifonline "1"



set offlinetext "ohh noooo... :( Stream is offline !"

set offlinetopic "be back soon"



set onlinetext "/stitle/ now online @ /surl/ with /bitrate/kbits"

set onlinetopic "/dj/@/stitle/ @ /surl/ streaming at /bitrate/kbits"



set streamtext "Listen to #schallraum Radio @ http://$streamip:$streamport/listen.pls  <---/dj/ spinning /cursong/ "



set advertisetext "Tune In to #schallraum Radio - Live @ http://$streamip:$streamport/listen.pls  ***Current DJ: /dj/"



# 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 - "?0 * * * *" 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 :the following commands are available:"

putserv "notice $target :$scstatstrigger - $scstreamtrigger - $scplayingtrigger - $scdjtrigger - $sclastsongstrigger - $scwishtrigger - $scgreettrigger - $sclistenertrigger"

}



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 is now rocking the turntables, enjoy."

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 :this has not been announced because the radio is currentlfy offline." }

}





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

set dj ""

file delete dj

putserv "notice $nick :dj deleted"

}







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

poststuff privmsg "Peak Listeners: $curhigh / Currently Listening: $repl / Average Listening Time: $avgtime seconds"

}}



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 :sorry radio is currently offline" }

}





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



regsub -all "´" $songs "Ž" songs

regsub -all "&#x96;" $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"

poststuff privmsg "$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 :you forgot to add your greetmessage"; 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 :sorry radio is currently offline" }

}





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 is at the turntables!"

} else { putserv "notice $target :sorry, no dj name available" }

} else { putserv "notice $target :sorry radio is currently offline" }

}







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 "<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 is online, running shoutcast $version and streaming at $bitrate kbps,  your dj is $dj. please visit $surl"

} else {

putserv "notice $target :$stitle$sgenre is currenty offline, running shoutcast $version and streaming at $bitrate kbps, check out $surl" }

putserv "notice $target :there are currently $repl unique people listening, the listener maximum is $maxl, our user peak was at $curhigh listeners."

putserv "notice $target :the average user is listening $avgtime seconds, our stream had $webhits webhits and $streamhits streamhits."

putserv "notice $target :you can contact the team by irc on $irc, via aim at $aim and with icq by the uin $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 "+" songtitle  

regsub -all """ $songtitle "\"" songtitle

regsub -all "'" $songtitle "'" songtitle

regsub -all "ÿ" $songtitle "" songtitle

regsub -all "´" $songtitle "Ž" songtitle

regsub -all "&#x96;" $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 :now playing $songtitle$songurl"

} else {

putserv "notice $target :server is currently offline, sorry"

}}}

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 "<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 "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 "radio is now offline" }

	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 "new listener peak: [lindex $curhigh 1]"

}

if {$oldcurlist != $repl} {

poststuff privmsg "there are currently [lindex $repl 1] ($currentl) people listening"

}}

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

regsub -all "´" $cursong "Ž" cursong

regsub -all "&#x96;" $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 "now playing: [lrange $cursong 1 [llength $cursong]]$songurl"

}



if {($tellbitrate == 1) && ($oldbitrate != $bitrate) && ($streamstatus == "isonline: 1") && ($oldbitrate != "bitrate: 0")} {

poststuff privmsg "bitrate switched to [lindex $bitrate 1]kbps"

}}}



putlog "*** shoutcast.tcl v1.03 by domsen <domsen@domsen.org> succesfully loaded. turn it up baby."
[/code]
Last edited by moff on Thu Jan 22, 2009 8:13 pm, edited 2 times in total.
User avatar
username
Op
Posts: 196
Joined: Thu Oct 06, 2005 9:20 am
Location: Russian Federation, Podolsk
Contact:

Post by username »

For example you can change

Code: Select all

bind time - "?0 * * * *" advertise
to

Code: Select all

bind time - "09 * * * *" advertise
bind time - "39 * * * *" advertise
and itll work every 09 and 39 minuts in hour. Or you can rewrite it useing timer.
Архив TCL скриптов для ботов Eggdrop/Windrop:
http://egghelp.ru/
m
moff
Voice
Posts: 27
Joined: Thu Jul 24, 2008 9:24 pm

Post by moff »

it works,
thx !
:D
Post Reply