<?php
// homepage www.samscripts.com/scripts/voxinfo
header("Content-disposition: text/xml");
echo '<?xml version="1.0"?>'."\n".'<info>'."\n";
ini_set("track_errors", 1);
//$fp = @fopen("http://info.voxtreme.com/index.php","r");
$fp = @fopen("./serverstatus.htm","r");
if( $fp ){
    $txt = "";
    $in = "";
    while( ($txt = @fread($fp, 4096)) ){
        $in .= $txt;
    }
    fclose($fp);
    $f = "|<td><FONT SIZE=1 COLOR=#000000 face='Verdana, Arial, Helvetica, sans-serif'><B>(.*?)</B><BR><I>(.*?)</I></FONT>(<td.*?</FONT></td></tr>)|is";
    $ff = "|<tr bgcolor=\".*?\"><td align=left bgcolor=\".*?\"><FONT SIZE=2 COLOR=.*? face='Verdana, Arial, Helvetica, sans-serif'><B>(.*?)</B>(.*?)</font></td></tr>|is";
    if( preg_match_all( $ff, $in, $matches) ){
        for( $i = 0; $i < count($matches[1]); $i++){
            $announcements[$matches[1][$i]] = preg_replace("|^.*?-\s*(.*)|is", '$1',$matches[2][$i]);
        }
    }else{
        $announcements = array();
    }
    if( preg_match_all( $f, $in, $matches) ){
        $servers = array();
        for( $i = 0; $i < count($matches[0]); $i++){
            $servers[$matches[1][$i]]["ip"] = $matches[2][$i];
            $m = "|.*?/images/(.*?)\.gif.*?|is";
            if( preg_match_all($m, $matches[3][$i], $statuses) ){
                $servers[$matches[1][$i]]["status"] = true;
                $s = &$servers[$matches[1][$i]];
                list($s["ftp"], $s["http"], $s["MySql"], $s["pop3"], $s["smtp"]) = $statuses[1];
                $s["uptime"] = preg_replace("|.*<FONT SIZE=1 COLOR=#000000 face='Verdana, Arial, Helvetica, sans-serif'>(.*?)</FONT></td></tr>|is", '$1', $matches[3][$i]);
            }else{
                $servers[$matches[1][$i]]["status"] = false;
            }
        }
    }
    if( isset($HTTP_GET_VARS["servers"]) ){
        $sv = $HTTP_GET_VARS["servers"];
        $wantservers = explode("-", $sv);
        $serversearch = "/(".join("|", $wantservers).")/i";
    }
    if( isset($HTTP_GET_VARS["iwant"]) ){
        $iwant = $HTTP_GET_VARS["iwant"];
    }
    if( !isset($iwant) || preg_match("|announcements|i", $iwant) ){
        echo "    <announcements>\n";
        foreach( $announcements as $date=>$value){
            if( !isset($serversearch) || preg_match($serversearch, $value) ){
                echo "        <announcement date=\"$date\" text=\"$value\" />\n";
            }
        }
        echo "    </announcements>\n";
    }
    if( !isset($iwant) || preg_match("|servers|i", $iwant) ){
        echo "    <servers>\n";
        foreach( $servers as $name => $status){
            if( !isset($serversearch) || preg_match($serversearch, $name) ){
                echo "\t\t<server name=\"$name\"";
                foreach( $status as $k=>$v) echo " $k=\"".str_replace("\n","",$v)."\"";
                echo " />\n";
            } 
        }
        echo "    </servers>\n";
    }
}else{
?>
    <error><?php echo urlencode($php_errormsg);?></error>
<?php
}
?>
</info>