<?

/*****************************************************
 **  ShoutCAST server stream information module     **
 **  Author: Reinholds 'nFo_wORm' Zviedris          **
 **  (c)2004 Soft.Warez.HQ (http://soft.warez.lv/)  **
 *****************************************************/

$scdef "Radio GAGA";   // Default station name to display when server or stream is down
$scip "192.168.0.1";   // ip or url of shoutcast server
$scport "8000";        // port of shoutcast server
$scpass "";            // password to shoutcast server
$scsongs 5;            // not less than 1, no more than 20
$version '0.9.5';

$scsuccs 0;
if( !empty(
$scip) && !empty($scport) ) {
  
$scfp fsockopen("$scip"$scport, &$errno, &$errstr30);
  if( !
$scfp ) {
    
$scsuccs 1;
  }
} else {
  
$scsuccs 2;
}

if( 
$scsuccs == ) {
  
$page '';
  
fputs($scfp,"GET /admin.cgi?pass=$scpass&mode=viewxml HTTP/1.0\r\nUser-Agent: SHOUTcast Song Status (Mozilla Compatible)\r\n\r\n");
  while(!
feof($scfp)) {
    
$page .= fgets($scfp1000);
  }
  
$loop = array("STREAMSTATUS""BITRATE""SERVERTITLE""CURRENTLISTENERS""MAXLISTENERS""BITRATE");
  
$k count($loop);

  for( 
$y 0$y $k$y++ ) {
    
$pageed ereg_replace(".*<$loop[$y]>"""$page);
    
$scphp strtolower($loop[$y]);
    $
$scphp ereg_replace("</$loop[$y]>.*"""$pageed);
    $
$scphp urldecode($$scphp);
  }

  
//get song info and history
  
$pageed ereg_replace(".*<SONGHISTORY>"""$page);
  
$pageed ereg_replace("<SONGHISTORY>.*"""$pageed);
  
$songatime explode("<SONG>"$pageed);

  
$m count($songatime);

  for(
$r 1$r $m$r++) {
    
$t=$r-1;
    
$playedat[$t] = ereg_replace(".*<PLAYEDAT>"""$songatime[$r]);
    
$playedat[$t] = ereg_replace("</PLAYEDAT>.*"""$playedat[$t]);
    
$song[$t] = ereg_replace(".*<TITLE>"""$songatime[$r]);
    
$song[$t] = ereg_replace("</TITLE>.*"""$song[$t]);
    
$song[$t] = urldecode($song[$t]);
    
$dj[$t] = ereg_replace(".*<SERVERTITLE>"""$page);
    
$dj[$t] = ereg_replace("</SERVERTITLE>.*"""$pageed);
  }
  
fclose($scfp);
}
header('Content-Type: text/html; charset=utf-8 \r\n');
echo 
"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta http-equiv="Refresh" content="60;URL=<? echo $_SERVER['PHP_SELF']; ?>" />
  <title>:: <? echo ( $scdef $scdef 'No station name' ); ?> ::</title>
  <style type="text/css">
  <!--
body {
  font-family : Arial, sans-serif;
  font-size : 10px;
  cursor : default;
  color : #000000;
  margin-left : 0.2em;
  margin-top : 0.2em;
}
td {
  font-family: Arial, sans-serif;
  font-size: 10px;
}
  -->
  </style>
</head>
<body bgcolor="#FFFFFF">

<div align="left">
  <table border="0" width="311" cellspacing="0" cellpadding="0">
    <tr>
      <td colspan="5" height="1" bgcolor="#585858"></td>
      <td width="5" height="1" bgcolor="#FFFFFF"></td>
    </tr>
    <tr>
      <td width="1" bgcolor="#585858"></td>
      <td width="4" bgcolor="#F9F9F9"></td>
      <td rowspan="2" colspan="2" width="300" height="15" bgcolor="#F9F9F9" style="color:#000090; font-size:12px"><div align="center">ShoutCAST Server Information Module</div></td>
      <td width="1" bgcolor="#585858"></td>
      <td width="5" height="4" bgcolor="#FFFFFF"></td>
    </tr>
    <tr>
      <td width="1" bgcolor="#585858"></td>
      <td width="4" bgcolor="#F9F9F9"></td>      
      <td width="1" bgcolor="#585858"></td>
      <td width="5" bgcolor="#F0F0F0" height="15"></td>
    </tr>
    <tr>
      <td width="1" bgcolor="#585858"></td>
      <td colspan="3" height="1" bgcolor="#585858"></td>
      <td width="1" bgcolor="#585858"></td>
      <td width="5" bgcolor="#F0F0F0"></td>
    </tr>
<?
//display stats
if($scsuccs == 0) {
  if(
$streamstatus == "1") {
?>
    <tr>
      <td width="1" bgcolor="#585858"></td>
      <td width="4"></td>
      <td width="70" style="line-height:1.6em">Server:</td>
      <td width="230" style="line-height:1.6em"><? echo '<a href="http://'.$scip.':'.$scport.'/listen.pls" style="font-size:10px;color:#3366FF">'.$servertitle.'</a> ('.$bitrate.'kbps)'?></td>
      <td width="1" bgcolor="#585858"></td>
      <td width="5" bgcolor="#F0F0F0"></td>
    </tr>
    <tr>
      <td width="1" bgcolor="#585858"></td>
      <td width="4"></td>
      <td width="70" style="line-height:1.6em">Listeners:</td>
      <td width="230" style="line-height:1.6em"><? echo $currentlisteners.' (active) / '.$maxlisteners?> (max)</td>
      <td width="1" bgcolor="#585858"></td>
      <td width="5" bgcolor="#F0F0F0"></td>
    </tr>
    <tr>
      <td width="1" bgcolor="#585858"></td>
      <td width="4"></td>
      <td width="70" style="line-height:1.6em">Current song:</td>
      <td width="230" style="line-height:1.6em"><b><? echo $song[0]; ?></b></td>
      <td width="1" bgcolor="#585858"></td>
      <td width="5" bgcolor="#F0F0F0"></td>
    </tr>
    <tr>
      <td width="1" bgcolor="#585858"></td>
      <td colspan="3" style="line-height:1.6em"><div align="center">Last <? echo $scsongs?> Songs:</div></td>
      <td width="1" bgcolor="#585858"></td>
      <td width="5" bgcolor="#F0F0F0"></td>
    </tr>
    <tr>
      <td width="1" bgcolor="#585858"></td>
      <td colspan="3">
        <table width="300" border="0" cellpadding="0" cellspacing="0">
          <tr>
          <td style="color:#585858; line-height:1.6em">
            <div align="left" style="margin-left : 0.2em; margin-right : 0.2em; margin-bottom : 0.2em;"><?

    
for( $d 1$d $scsongs 1$d++ ) {
      if( !empty(
$song[$d]) ) {
        echo 
date('H:i:s',$playedat[$d]).'&nbsp;&nbsp;&nbsp;'.$song[$d].'<br />';
      } else {
        break;
      }
    }

            
?></div>
          </td>
        </tr>
      </table>
      </td>
      <td width="1" bgcolor="#585858"></td>
      <td width="5" bgcolor="#F0F0F0"></td>
    </tr>
<?
  
} else {
    
?>
    <tr>
      <td width="1" bgcolor="#585858"></td>
      <td width="4"></td>
      <td colspan="2" style="line-height:1.6em"><div align="center" style="width: 300px;">No active stream detected!</div></td>
      <td width="1" bgcolor="#585858"></td>
      <td width="5" bgcolor="#F0F0F0"></td>
    </tr>
    <?
  
}
} elseif( 
$scsuccs == ) {
    
?>
    <tr>
      <td width="1" bgcolor="#585858"></td>
      <td width="4"></td>
      <td colspan="2" style="line-height:1.6em"><div align="center" style="width: 300px;">Station not responding!</div></td>
      <td width="1" bgcolor="#585858"></td>
      <td width="5" bgcolor="#F0F0F0"></td>
    </tr>
    <?
} elseif( $scsuccs == ) {
    
?>
    <tr>
      <td width="1" bgcolor="#585858"></td>
      <td width="4"></td>
      <td colspan="2" style="line-height:1.6em"><div align="center" style="width: 300px;">Server Information Module script not configured!</div></td>
      <td width="1" bgcolor="#585858"></td>
      <td width="5" bgcolor="#F0F0F0"></td>
    </tr>
    <?
}
?>
    <tr>
      <td width="1" bgcolor="#585858"></td>
      <td colspan="3" height="1" bgcolor="#585858"></td>
      <td width="1" bgcolor="#585858"></td>
      <td width="5" bgcolor="#F0F0F0"></td>
    </tr>
    <tr>
      <td width="1" height="5" bgcolor="#FFFFFF"></td>
      <td width="4" height="5" bgcolor="#FFFFFF"></td>
      <td colspan="2" width="296" height="5" bgcolor="#F0F0F0"></td>
      <td width="1" height="5" bgcolor="#F0F0F0"></td>
      <td width="5" height="5" bgcolor="#F0F0F0"></td>
    </tr> 
    <tr>
      <td colspan="6"><div align="right" style="font-size: 9px;">&#0169;2004 <a href="http://soft.warez.lv/" style="font-size:9px;color:#3366FF" target="_blank">Soft.Warez.HQ</a> | <a href="http://validator.w3.org/check/referer" style="font-size:9px;color:#3366FF">Valid XHTML 1.0</a> | v<? echo $version?></div></td>
    </tr>
  </table>
</div>
</body>
</html>