on *:text:-scstatmulti *:#:{ sockclose scstatmulti set %scstatmulti.chan $chan set %scstatmulti.servers $numtok($2-,32) set %scstatmulti.server 1 var %i = 1 while (%i <= %scstatmulti.servers) { set % $+ scstatmulti.host $+ %i $gettok($gettok($2-,%i,32),1,58) set % $+ scstatmulti.port $+ %i $gettok($gettok($2-,%i,32),2,58) inc %i } sockopen scstatmulti %scstatmulti.host1 %scstatmulti.port1 } on *:sockopen:scstatmulti:{ sockwrite -n $sockname GET /7.html HTTP/1.0 sockwrite -n $sockname User-Agent: Mozilla sockwrite -n $sockname $crlf } on *:sockread:scstatmulti:{ if ($sockerr > 0) return :nextread sockread -f %scasttemp if ($sockbr == 0) return if (%scasttemp == $null) %scasttemp = empty set %scasttemp $remove(%scasttemp,,) if ((HTTP/1.* !iswm %scasttemp) && (content-type* !iswm %scasttemp) && (%scasttemp != empty)) { set % [ $+ scstatmulti.song $+ [ %scstatmulti.server ] ] $gettok(%scasttemp,7-,44) set % [ $+ scstatmulti.bitrate $+ [ %scstatmulti.server ] ] $gettok(%scasttemp,6,44) set % [ $+ scstatmulti.listeners $+ [ %scstatmulti.server ] ] $gettok(%scasttemp,1,44) set % [ $+ scstatmulti.maxlist $+ [ %scstatmulti.server ] ] $gettok(%scasttemp,4,44) set % [ $+ scstatmulti.livedj $+ [ %scstatmulti.server ] ] $iif($gettok(%scasttemp,2,44) == 1,connected,not connected) ; changing some of the html codes back to regular characters set % [ $+ scstatmulti.song $+ [ %scstatmulti.server ] ] $replace(% [ $+ scstatmulti.song $+ [ %scstatmulti.server ] ],&,$chr(38),',$chr(39)) } goto nextread } on *:sockclose:scstatmulti:{ if (%scstatmulti.server < %scstatmulti.servers) { ;this tells the script to loop around one more time if it hasnt finished every server inc %scstatmulti.server sockclose scstatmulti sockopen scstatmulti % [ $+ scstatmulti.host $+ [ %scstatmulti.server ] ] % [ $+ scstatmulti.port $+ [ %scstatmulti.server ] ] } elseif (%scstatmulti.server == %scstatmulti.servers) { ;we have all we need so we end here and message to channel ;msg %scstatmulti.chan var %i = 1 while (%i <= %scstatmulti.servers) { msg %scstatmulti.chan Server # $+ %i $+ : Listeners:  $+ $+(% [ $+ scstatmulti.listeners $+ [ %i ] ],/,% [ $+ scstatmulti.maxlist $+ [ %i ] ]) $+  Bitrate:  $+ % [ $+ scstatmulti.bitrate $+ [ %i ] ] $+ Kb Bandwidth:  $+ $+(,$round($calc(((% [ $+ scstatmulti.bitrate $+ [ %i ] ] *1024) * % [ $+ scstatmulti.listeners $+ [ %i ] ] ) / 1024 / 1024),2),Mb/s) $+  inc %i } var %i = 1 set %scstatmulti.totallist 0 set %scstatmulti.maxtotallist 0 set %scstatmulti.bitrateave 0 while (%i <= %scstatmulti.servers) { set %scstatmulti.totallist $calc(%scstatmulti.totallist + % [ $+ scstatmulti.listeners $+ [ %i ] ] ) set %scstatmulti.maxtotallist $calc(%scstatmulti.maxtotallist + % [ $+ scstatmulti.maxlist $+ [ %i ] ] ) set %scstatmulti.bitrateave $calc(%scstatmulti.bitrateave + % [ $+ scstatmulti.bitrate $+ [ %i ] ] ) inc %i } set %scstatmulti.bitrateave $calc(%scstatmulti.bitrateave / %scstatmulti.servers) msg %scstatmulti.chan Total Listeners:  $+ $+(%scstatmulti.totallist,/,%scstatmulti.maxtotallist) $+  Average/Server:  $+ $calc(%scstatmulti.totallist / %scstatmulti.servers) $+  Total Bandwidth:  $+ $+($round($calc(((%scstatmulti.bitrateave *1024) * %scstatmulti.totallist) / 1024 / 1024),2),Mb/s) $+  Average Bandwidth/Server:  $+ $+($round($calc(((%scstatmulti.bitrateave *1024) * %scstatmulti.totallist) / 1024 / 1024 / %scstatmulti.servers),2),Mb/s) $+  unset %scstatmulti* } }