if ($stats["streamstatus"] == 1) {
echo " | ";
echo "On Air | ";
echo " | ";
echo " | ";
echo "" . htmlspecialchars($stats["servertitle"]) . "";
printf("Currently %d listeners,from max.%d listeners. Peak is %d listeners at same time", $stats["currentlisteners"], $stats["maxlisteners"], $stats["peaklisteners"]);
?>
Playing song:
|
=htmlspecialchars($stats["songtitle"])?> @=$stats["bitrate"]?> kbps |
Our listeners from tracker:
// Zuh?
$ipaddrs = array();
for ($I=0; $I < count($stats["listeners"]); $I++) {
$ip = gethostbyname($stats["listeners"][$I]["hostname"]);
$ipaddrs[] = sqlesc($ip);
}
$res = mysql_query("SELECT DISTINCT(`ip`),id,username,class,donor,warned,enabled FROM users WHERE ip IN (".implode(",", $ipaddrs).") GROUP BY `ip` ORDER BY `class` DESC,`username` ASC");
$activeusers = "";
while ($arr = mysql_fetch_assoc($res))
{
if ($activeusers) $activeusers .= ",\n";
switch ($arr["class"])
{
case UC_STAFFLEADER:
$arr["username"] = "" . $arr["username"] . "";
break;
case UC_SYSOP:
$arr["username"] = "" . $arr["username"] . "";
break;
case UC_ADMINISTRATOR:
$arr["username"] = "" . $arr["username"] . "";
break;
case UC_MODERATOR:
$arr["username"] = "" . $arr["username"] . "";
break;
case UC_UPLOADER:
$arr["username"] = "" . $arr["username"] . "";
break;
case UC_VIP:
$arr["username"] = "" . $arr["username"] . "";
break;
case UC_POWER_USER:
$arr["username"] = "" . $arr["username"] . "";
break;
}
if(@in_array($arr['id'],$friends))
$arr["username"] = "" . $arr["username"] . "" . "";
if($donator = $arr["donor"] === "yes");
$activeusers .= "";
if ($warned = $arr["warned"] === "yes")
$activeusers .= "";
if ($CURUSER)
$activeusers .= "{$arr["username"]}";
else
$activeusers .= "{$arr["username"]}";
if ($donator)
$activeusers .= "";
if ($warned)
$activeusers .= "";
if ($activeusers != "")
echo $activeusers;
else
echo "We have currantly no listeners.";
}
?>
|
} else {
echo " | Offline | | ";
}
?>
begin_table(TRUE);
echo " |
";
for ($I = 0; $I < count($stats["songhistory"]); $I++) {
echo " | ";
echo "" . date("d.n.Y, G:i:s", $stats["songhistory"][$I]["playedat"]) . " | ";
echo "" . htmlspecialchars($stats["songhistory"][$I]["title"]) . " | \n";
}
end_table();
?>
|
end_table();
end_frame();
}
?>
wMan |
17th September 2008 00:43 |
|
Demon-Cod3rs |
23rd April 2015 21:46 |
??}
To
}
PHP Code:
<?
/************************************************************ * Shoutcast server settings *************************************************************/
// Set to FALSE to disable Shoutcast plugin $GLOBALS["ENABLESHOUTCAST"] = true;
// Radio title $GLOBALS["RADIOTITLE"] = "Radio";
// Hostname and port of your Shoutcast server $GLOBALS["SC_HOSTNAME"] = "radio.net"; $GLOBALS["SC_PORT"] = 8000;
// Username and password for your SC admin account $GLOBALS["SC_USERNAME"] = "admin"; $GLOBALS["SC_PASSWORD"] = "pass";
// Connection timeout // If the Shoutcast server does not run, the HTTP request // will freeze script execution for this amount of time. // Better disable the plugin if your server is down, or start // the SC server immediately. This means the sc_serv process // running or not, NOT the stream online/offline status! $GLOBALS["SC_HTTPTIMEOUT"] = 2;
class xml2Array { var $arrOutput = array(); var $resParser; var $strXmlData;
function parse($strInputXML) { $this->resParser = xml_parser_create (); xml_set_object($this->resParser, $this); xml_set_element_handler($this->resParser, "tagOpen", "tagClosed");
xml_set_character_data_handler($this->resParser, "tagData");
$this->strXmlData = xml_parse($this->resParser, $strInputXML); if (!$this->strXmlData) { die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($this->resParser)), xml_get_current_line_number($this->resParser))); }
xml_parser_free($this->resParser);
return $this->arrOutput; } function tagOpen($parser, $name, $attrs) { $tag = array("name" => $name, "attrs" => $attrs); array_push($this->arrOutput, $tag); }
function tagData($parser, $tagData) { if (trim($tagData)) { if (isset($this->arrOutput[count($this->arrOutput)-1]['tagData'])) { $this->arrOutput[count($this->arrOutput)-1]['tagData'] .= $tagData; } else { $this->arrOutput[count($this->arrOutput)-1]['tagData'] = $tagData; } } }
function tagClosed($parser, $name) { $this->arrOutput[count($this->arrOutput)-2]['children'][] = $this->arrOutput[count($this->arrOutput)-1]; array_pop($this->arrOutput); } }
// Simple HTTP-Anfragefunktion, um die Stats zu erhalten // Funktioniert auch mit aktivem safe_mode function get_http_data($URL, $referrer = "") { // Gibt die Daten der HTTP-Antwort zur?/ URL zerlegen if (!preg_match("/http\:\/\/(([\w\.\-]+)(\:(.+?))?@)?([\w\.\-]+)\:?(\d*)(\/?\S*)/i", $URL, $match)) return false; // Verbinden $fhandle = @fsockopen($match[5], ($match[6] > 0?$match[6]:80), &$errno, &$errstr, $GLOBALS["SC_HTTPTIMEOUT"]);
if (!$fhandle) { return false; } else { $request = "GET " . ($match[7] <> ""?$match[7]:"/") . " HTTP/1.0\r\n"; $request .= "Host: " . $match[5] . "\r\n"; if ($referrer != "") { $request .= "Referer: " . $referrer . "\r\n"; } if ($match[2] != "") { $authstring = base64_encode($match[2] . ":" . $match[4]); $request .= "Authorization: Basic " . $authstring . "\r\n"; } $request .= "Connection: close\r\nUser-Agent: Mozilla/5.0 (compatible;)\r\n\r\n"; // Request senden. HTTP 1.0 verwenden, um Chunked Encoding zu verhindern fputs ($fhandle, $request);
$retr = ""; while (!feof($fhandle)) { $retr .= fgets($fhandle, 128); } // Verbindung beenden fclose($fhandle); // Daten und Header trennen $pos = strpos($retr, "\r\n\r\n"); $header = substr($retr, 0, $pos - 1); $data = substr($retr, $pos + 4); // Daten und Header zur?en return array("header" => $header, "data" => $data); } }
// Tag suchen und inkl. Kinder zur?en function xmlarr_find_tag(&$array, $tagname) { foreach ($array as $search) { if ($search["name"] == $tagname) { return $search; } } return false; }
// Daten des aktuellen Tags zur?en function xmlarr_get_tagdata(&$array, $tagname) { foreach ($array as $search) { if ($search["name"] == $tagname) { return $search["tagData"]; } } return false; }
// Alle Shoutcast-Statistiken in ein einfach zu verwendendes Array kopieren function get_sc_stats() { $URL = "http://" . $GLOBALS["SC_USERNAME"] . ":" . $GLOBALS["SC_PASSWORD"] . "@"; $URL .= $GLOBALS["SC_HOSTNAME"] . ":" . $GLOBALS["SC_PORT"] . "/admin.cgi?mode=viewxml"; $retr = get_http_data($URL);
if ($retr == FALSE) return FALSE;
$XMLParser = new xml2Array(); $array = $XMLParser->parse($retr["data"]); $array = xmlarr_find_tag($array, "SHOUTCASTSERVER"); $array = $array["children"];
$statsarr = array();
// Global stats $statsarr["currentlisteners"] = xmlarr_get_tagdata($array, "CURRENTLISTENERS"); $statsarr["peaklisteners"] = xmlarr_get_tagdata($array, "PEAKLISTENERS"); $statsarr["maxlisteners"] = xmlarr_get_tagdata($array, "MAXLISTENERS"); $statsarr["reportedlisteners"] = xmlarr_get_tagdata($array, "REPORTEDLISTENERS"); $statsarr["averagetime"] = xmlarr_get_tagdata($array, "AVERAGETIME"); $statsarr["servergenre"] = xmlarr_get_tagdata($array, "SERVERGENRE"); $statsarr["serverurl"] = xmlarr_get_tagdata($array, "SERVERURL"); $statsarr["servertitle"] = xmlarr_get_tagdata($array, "SERVERTITLE"); $statsarr["songtitle"] = xmlarr_get_tagdata($array, "SONGTITLE"); $statsarr["songurl"] = xmlarr_get_tagdata($array, "SONGURL"); $statsarr["irc"] = xmlarr_get_tagdata($array, "IRC"); $statsarr["icq"] = xmlarr_get_tagdata($array, "ICQ"); $statsarr["aim"] = xmlarr_get_tagdata($array, "AIM"); $statsarr["webhits"] = xmlarr_get_tagdata($array, "WEBHITS"); $statsarr["streamhits"] = xmlarr_get_tagdata($array, "STREAMHITS"); $statsarr["streamstatus"] = xmlarr_get_tagdata($array, "STREAMSTATUS"); $statsarr["bitrate"] = xmlarr_get_tagdata($array, "BITRATE"); $statsarr["content"] = xmlarr_get_tagdata($array, "CONTENT"); $statsarr["version"] = xmlarr_get_tagdata($array, "VERSION");
// Web stats $webarray = xmlarr_find_tag($array, "WEBDATA"); $webarray = $webarray["children"]; $statsarr["webdata"] = array(); $statsarr["webdata"]["index"] = xmlarr_get_tagdata($webarray, "INDEX"); $statsarr["webdata"]["listen"] = xmlarr_get_tagdata($webarray, "LISTEN"); $statsarr["webdata"]["palm7"] = xmlarr_get_tagdata($webarray, "PALM7"); $statsarr["webdata"]["login"] = xmlarr_get_tagdata($webarray, "LOGIN"); $statsarr["webdata"]["loginfail"] = xmlarr_get_tagdata($webarray, "LOGINFAIL"); $statsarr["webdata"]["played"] = xmlarr_get_tagdata($webarray, "PLAYED"); $statsarr["webdata"]["cookie"] = xmlarr_get_tagdata($webarray, "COOKIE"); $statsarr["webdata"]["admin"] = xmlarr_get_tagdata($webarray, "ADMIN"); $statsarr["webdata"]["updinfo"] = xmlarr_get_tagdata($webarray, "UPDINFO"); $statsarr["webdata"]["kicksrc"] = xmlarr_get_tagdata($webarray, "KICKSRC"); $statsarr["webdata"]["kickdst"] = xmlarr_get_tagdata($webarray, "KICKDST"); $statsarr["webdata"]["unbandst"] = xmlarr_get_tagdata($webarray, "UNBANDST"); $statsarr["webdata"]["bandst"] = xmlarr_get_tagdata($webarray, "BANDST"); $statsarr["webdata"]["viewban"] = xmlarr_get_tagdata($webarray, "VIEWBAN"); $statsarr["webdata"]["unripdst"] = xmlarr_get_tagdata($webarray, "UNRIPDST"); $statsarr["webdata"]["ripdst"] = xmlarr_get_tagdata($webarray, "RIPDST"); $statsarr["webdata"]["viewrip"] = xmlarr_get_tagdata($webarray, "VIEWRIP"); $statsarr["webdata"]["viewxml"] = xmlarr_get_tagdata($webarray, "VIEWXML"); $statsarr["webdata"]["viewlog"] = xmlarr_get_tagdata($webarray, "VIEWLOG"); $statsarr["webdata"]["invalid"] = xmlarr_get_tagdata($webarray, "INVALID");
// Listener stats $statsarr["listeners"] = array(); $lstarray = xmlarr_find_tag($array, "LISTENERS"); if (is_array($lstarray)) { $lstarray = $lstarray["children"]; for ($I = 0; $I < count($lstarray); $I++) { $listener = $lstarray[$I]["children"]; $listener_info = array(); $listener_info["hostname"] = xmlarr_get_tagdata($listener, "HOSTNAME"); $listener_info["useragent"] = xmlarr_get_tagdata($listener, "USERAGENT"); $listener_info["underruns"] = xmlarr_get_tagdata($listener, "UNDERRUNS"); $listener_info["connecttime"] = xmlarr_get_tagdata($listener, "CONNECTTIME"); $listener_info["pointer"] = xmlarr_get_tagdata($listener, "POINTER"); $listener_info["uid"] = xmlarr_get_tagdata($listener, "UID"); array_push($statsarr["listeners"], $listener_info); } }
// Song history $statsarr["songhistory"] = array(); $songarray = xmlarr_find_tag($array, "SONGHISTORY"); if (is_array($songarray)) { $songarray = $songarray["children"]; for ($I = 0; $I < count($songarray); $I++) { $song = $songarray[$I]["children"]; $song_info = array(); $song_info["playedat"] = xmlarr_get_tagdata($song, "PLAYEDAT"); $song_info["title"] = xmlarr_get_tagdata($song, "TITLE"); array_push($statsarr["songhistory"], $song_info); } }
return $statsarr; }
// Radio-Infobox f? Tracker function sc_infobox() { $stats = get_sc_stats(); if ($stats == FALSE) return;
begin_frame("<img src=pic/radio.png width=16 height=16 style=\"vertical-align: middle;\"><b>".htmlspecialchars($GLOBALS["RADIOTITLE"])."");
begin_table(TRUE);
?> <colgroup> <col width="50%" /> <col width="50%" /> </colgroup> <tr> <td class="colhead" align="left"><span class="normalfont"><left><img src="pic/winamp.gif" width="16" height="16" alt="" style="vertical-align: left;"><a href="http://www.meraklije.net/radio/listen.pls"> Listen with Winamp</a></left></span></td> <td class="colhead" align="left"><span class="normalfont"><left><img src="pic/mediaplayer.gif" width="16" height="16" alt="" style="vertical-align: left;"><a href="http://www.meraklije.net/radio/listen.wmx"> Listen with Media Player</a></left></span></td> </tr> <tr> <colgroup2> <col width="50%" /> <col width="50%" /> </colgroup2> <td class="colhead" align="left"><span class="normalfont"><left><img src="pic/real.gif" width="16" height="16" alt="" style="vertical-align: left;"><a href="http://www.meraklije.net/radio/listen.ram"> Listen with Real Player</a></left></span></td> <td class="colhead" align="left"><span class="normalfont"><left><img src="pic/radioplaylist.png" width="16" height="16" alt="" style="vertical-align: left;"> <a href="#radiopls" onclick="var myDiv=document.getElementById('playlist');myDiv.style.display='block';"> Last 10 songs</a></left></span></td> </tr> <tr> <td class="colhead2" style="vertical-align:top;text-align:center;" colspan="2"> <?php if ($stats["streamstatus"] == 1) { echo "<center><table><tr><td valign=\"middle\"><img src=\"pic/button_online2.gif\" width=\"15\" height=\"15\" alt=\"Online\" style=\"vertical-align: middle;\"></td>"; echo "<td valign=\"middle\" style=\"font-size:-1;font-weight:bold;\">On Air</td>"; echo "<td valign=\"middle\"><img src=\"pic/button_online2.gif\" width=\"15\" height=\"15\" alt=\"Online\" style=\"vertical-align: middle;\"></td></tr></table></center>";
echo "<table><tr><td valign=\"top\"><img src=\"pic/viewmag16.png\" width=\"16\" height=\"16\" alt=\"\" style=\"vertical-align: middle;\"></td>"; echo "<td valign=\"top\"><b>" . htmlspecialchars($stats["servertitle"]) . "</b>"; printf("<font size=-1>Currently <b>%d</b> listeners,from max.<b>%d</b> listeners. Peak is <b>%d</b> listeners at same time</font>", $stats["currentlisteners"], $stats["maxlisteners"], $stats["peaklisteners"]);
?> <b><font size=-2>Playing song:</font></b> <table> <tr> <td valign="middle"><img src="pic/song.png" width="16" height="16" alt=""></td> <td style="vertical-align:middle;text-align:left;"><font size=-2><?=htmlspecialchars($stats["songtitle"])?> @<?=$stats["bitrate"]?> kbps</font></td> </tr> </table>
<table> <tr> <td class="body" width="400" valign="middle"><center></center><b><font size=-2>Our listeners from tracker:</font></b> <?php // Zuh? $ipaddrs = array(); for ($I=0; $I < count($stats["listeners"]); $I++) { $ip = gethostbyname($stats["listeners"][$I]["hostname"]); $ipaddrs[] = sqlesc($ip); } $res = mysql_query("SELECT DISTINCT(`ip`),id,username,class,donor,warned,enabled FROM users WHERE ip IN (".implode(",", $ipaddrs).") GROUP BY `ip` ORDER BY `class` DESC,`username` ASC"); $activeusers = ""; while ($arr = mysql_fetch_assoc($res)) { if ($activeusers) $activeusers .= ",\n"; switch ($arr["class"]) { case UC_STAFFLEADER: $arr["username"] = "<font color=darkred>" . $arr["username"] . "</font>"; break; case UC_SYSOP: $arr["username"] = "<font color=#2587A7>" . $arr["username"] . "</font>"; break; case UC_ADMINISTRATOR: $arr["username"] = "<font color=#B000B0>" . $arr["username"] . "</font>"; break; case UC_MODERATOR: $arr["username"] = "<font color=#ff5151>" . $arr["username"] . "</font>"; break; case UC_UPLOADER: $arr["username"] = "<font color=#6464FF>" . $arr["username"] . "</font>"; break; case UC_VIP: $arr["username"] = "<font color=#009F00>" . $arr["username"] . "</font>"; break; case UC_POWER_USER: $arr["username"] = "<font color=#f9a200>" . $arr["username"] . "</font>"; break; } if(@in_array($arr['id'],$friends)) $arr["username"] = "<font color=#4040CO>" . $arr["username"] . "<img src=pic/friend.jpg alt='Friend'>" . "</font>"; if($donator = $arr["donor"] === "yes"); $activeusers .= "<nobr>"; if ($warned = $arr["warned"] === "yes") $activeusers .= "<nobr>"; if ($CURUSER) $activeusers .= "<font size=-2><a href=userdetails.php?id={$arr["id"]}><b>{$arr["username"]}</b></a></font>"; else $activeusers .= "<b>{$arr["username"]}</b>"; if ($donator) $activeusers .= "<img src=./pic/star.gif alt='Donated {$$arr["donor"]}'></nobr>"; if ($warned) $activeusers .= "<img src=./pic/warned.gif alt='Warned {$$arr["warned"]}'></nobr>"; if ($activeusers != "") echo $activeusers; else echo "We have currantly no listeners."; } ?> </center></td></tr></table> <?php } else { echo "<center><table><tr><td valign=\"middle\"><img src=\"pic/button_offline2.gif\" width=\"15\" height=\"15\" alt=\"\"></td><td valign=\"middle\" style=\"font-size:200%;font-weight:bold;\">Offline</td><td valign=\"middle\"><img src=\"pic/button_offline2.gif\" width=\"15\" height=\"15\" alt=\"\"></td></tr></table></center>"; } ?> <div id="playlist" style="display:none;width:100%;"> <?php begin_table(TRUE); echo "<tr><td class=\"menuback\"> </td><td class=\"menuback\"><b>Date</b></td><td class=\"menuback\"><b>Song</b></td></tr>"; for ($I = 0; $I < count($stats["songhistory"]); $I++) { echo "<tr><td class=\"rowhead\" style=\"vertical-aling:middle;text-align:center;\"><img src=\"pic/song.png\" width=\"16\" height=\"16\" alt=\"\"></td>"; echo "<td class=\"rowhead\" nowrap=\"nowrap\">" . date("d.n.Y, G:i:s", $stats["songhistory"][$I]["playedat"]) . "</td>"; echo "<td class=\"rowhead2\" width=\"100%\">" . htmlspecialchars($stats["songhistory"][$I]["title"]) . "</td></tr>\n"; } end_table();
?> </div> </td> </tr> <?php end_table(); end_frame(); }
?>
|
order |
3rd June 2017 09:08 |
From what I canremember you need to have this in the config file too I did have it I'll fined it out
|
All times are GMT +2. The time now is 07:49. |
|
Powered by vBulletin® Version 3.8.11 Beta 3 Copyright ©2000 - 2024, vBulletin Solutions Inc.
|