Bravo List

Bravo List (http://www.bvlist.com/index.php)
-   TBDev (http://www.bvlist.com/forumdisplay.php?f=20)
-   -   [TBDev] shoutcast radio for tbdev (http://www.bvlist.com/showthread.php?t=1004)

Slatkis 13th September 2008 19:01

[TBDev] shoutcast radio for tbdev
 
Can some body posts radio for tbdev scripts

wMan 13th September 2008 19:29

Board Message

Slatkis 13th September 2008 19:52

I have this but radio works what is wrong

Error: Radio is currently unavailable

wMan 13th September 2008 20:34

thats what you get when u havent logged in to ur control panel to set status on for shoutcast ,you sure you got a shoutcast host? if so go ask them or turn it on then play

Slatkis 13th September 2008 20:49

I have this on my computer

wMan 13th September 2008 23:03

you need to get yourself a shoutcast server such as Stream Solutions - Professional Internet Media Streaming
get a control panel/add username,pasword,port etc in code then add in main page/index
and your off

Slatkis 14th September 2008 16:57

I dont have Listeners becuse I use tbdev and I must change this usergroup but how can you help me thank you

PHP Code:

<?php

?>
<html lang="ro">
<head>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<title><?= $title ?></title>
<META HTTP-EQUIV="refresh" content="50;URL=http://www.podkrovlje.org/radio/radio.php/">
</head><body bgcolor=#ECE9D8>
<?php
include ( "shoutcast.class.php" ) ;
error_reporting) ;
function 
converteste$seconds )
{


    
$tmpseconds substr"00" $seconds 60, -) ;


    if ( 
$seconds 59 )
    {


        if ( 
$seconds 3599 )
        {


            
$tmphours substr"0" intval($seconds 3600), -) ;


            
$tmpminutes substr"0" intval($seconds 60 - (60 $tmphours)), -) ;


            return ( 
$tmphours ":" $tmpminutes ":" $tmpseconds ) ;


        }
        else
        {


            return ( 
"00:" substr("0" intval($seconds 60), -2) . ":" $tmpseconds ) ;


        }


    }
    else
    {


        return ( 
"00:00:" $tmpseconds ) ;


    }


}
$asc = array();

function 
get_username$ip )
{
global 
$asc,$CURUSER;

    
$query sql_query('SELECT u.id, u.username, u.usergroup, g.namestyle FROM users u LEFT JOIN usergroups g ON (u.usergroup=g.gid) WHERE ip = \''.$ip.'\' ORDER BY u.last_access DESC LIMIT 1');


    while ( 
$q mysql_fetch_array($query) )
    {
        if(!
in_array($q['username'],$asc)):
        echo 
get_user_color($q['username'],$q['namestyle']);
        endif;
        
$asc[] = $q['username'];

    }


}


$shoutcast = new tcShoutCast() ;


$shoutcast->host "" ;


$shoutcast->port =  ;


$shoutcast->passwd "" ;


echo 
'<table width=100% border=0><tr><td align=left width=50%>' ;


if ( 
$shoutcast->openstats() )
{


    
// We got the XML, gogogo!..


    
if ( $shoutcast->GetStreamStatus() )
    {


        echo 
"<img src=/radio/imagini/dj.gif alt=DJ TC> " $shoutcast->
            
GetServerTitle() . " (" $shoutcast->GetCurrentListenersCount() . "/" $shoutcast->
            
GetMaxListenersCount() . ", peak: " $shoutcast->GetPeakListenersCount() .
            
")<p>\n" ;


        echo 
"\n" ;


        echo 
"<b>Current Song: </b> <img src=/radio/imagini/song1.png> " $shoutcast->
            
GetCurrentSongTitle() . "<BR><b>BitRate: </b>" $shoutcast->GetBitRate() .
            
" " ;


        echo 
"<b>Listeners:</b>\n" ;

        
$listeners $shoutcast->GetListeners() ;

        if ( 
is_array($listeners) )
        {

            for ( 
$i 0$i sizeof($listeners); $i++ )
            {

                echo 
get_username$listeners[$i]["hostname"]) .
                    
"      " ;
              

            }
            

            echo 
" + non-members" ;
            
        }

        else
        {

            echo 
"Noone listens right now.." ;

        }


        echo 
'</td><td align=left valign=middle>' ;


        echo 
"<b>Song history(last 4):</b>\n" ;


        
$history $shoutcast->istoria() ;


        if ( 
is_array($history) )
        {


            for ( 
$i 0$i <= 3$i++ )
            {


                echo 
" <img src=/radio/imagini/song.png> " $history[$i]["title"] . "\n" ;


            }


        }
        else
        {


            echo 
"<div align=middle>No song history available..</div>" ;


        }
echo 
"</tr><tr><td colspan=2 align=center>";
            if(!
in_array($CURUSER['username'],$asc)) {
                global 
$asc;
            
$q mysql_fetch_assoc(mysql_query("SELECT namestyle FROM usergroups WHERE gid = '$CURUSER[usergroup]' LIMIT 1"));
            
$name get_user_color($CURUSER['username'],$q['namestyle']) ;
            echo 
"<center>Hei, $name, listen to the Radio!!!</center>";
            }
          
#  echo "<center>These stats are IP based.</center>";


    
}
    else
    {


        echo 
"<div align=middle>There is no DJ online!</div>" ;


    }


}
else
{


    
// Ohhh, damnit..


    
echo $shoutcast->geterror() ;


}


echo 
'</td></tr></table>' ;



?>



</body>



</html>


wMan 14th September 2008 17:45

not sure what you mean as any one on your site all they do is click winamp image/link
etc to tune in no need for usergroups

Slatkis 14th September 2008 17:50

Yes but I doesnt have Listeners: the name who listen at the moment

Slatkis 14th September 2008 23:19

Can somebody help me with thid I have a error

Parse error: syntax error, unexpected '?' in /home/wwwpodk/public_html/shoutcast.php on line 326

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($fhandle128);
}
// Verbindung beenden
fclose($fhandle);
// Daten und Header trennen
$pos strpos($retr"\r\n\r\n");
$header substr($retr0$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\">&nbsp;</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();
}

?>


wMan 16th September 2008 14:14

comment it out or take it out


















Slatkis 16th September 2008 22:53

Ok but how can I change this look

URL=http://img146.imageshack.us/my.php?image=41272793jo6.png

Code:

// Radio-Infobox f? Tracker
function sc_infobox()
{
$stats = get_sc_stats();
if ($stats == FALSE)
return;

begin_frame("".htmlspecialchars($GLOBALS["RADIOTITLE"])."");

begin_table(TRUE);

?>
Listen with Winamp Listen with Media Player
Listen with Real Player Last 10 songs

if ($stats["streamstatus"] == 1) {
echo "
";
echo "";
echo "
\"Online\"On Air\"Online\"
";

echo "";
echo "";
for ($I = 0; $I < count($stats["songhistory"]); $I++) {
echo "";
echo "";
echo "\n";
}
end_table();

?>



end_table();
end_frame();
}

?>
\"\"" . 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:





@ 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"] . "Friend" . "";
if($donator = $arr["donor"] === "yes");
$activeusers .= "";
if ($warned = $arr["warned"] === "yes")
$activeusers .= "
";
if ($CURUSER)
$activeusers .= "{$arr["username"]}";
else
$activeusers .= "{$arr["username"]}";
if ($donator)
$activeusers .= "Donated {$$arr["donor"]}
";
if ($warned)
$activeusers .= "Warned {$$arr["warned"]}";
if ($activeusers != "")
echo $activeusers;
else
echo "We have currantly no listeners.";
}
?>

} else {
echo "
\"\"Offline\"\"
";
}
?>
 DateSong
\"\"" . date("d.n.Y, G:i:s", $stats["songhistory"][$I]["playedat"]) . "" . htmlspecialchars($stats["songhistory"][$I]["title"]) . "

wMan 17th September 2008 00:43

to be honest not sure maybe change middle to center all i di was add

shoucast code in index all showed up
could try these scripts

Stream Solutions - Professional Internet Media Streaming

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($fhandle128); 

// Verbindung beenden 
fclose($fhandle); 
// Daten und Header trennen 
$pos strpos($retr"\r\n\r\n"); 
$header substr($retr0$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\">&nbsp;</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 19:54.

Powered by vBulletin® Version 3.8.11 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions Inc.