Go Back   Winamp & Shoutcast Forums > Shoutcast > Shoutcast Discussions

Reply
Thread Tools Search this Thread Display Modes
Old 17th May 2011, 20:33   #1
froggyrichy2
Junior Member
 
Join Date: May 2011
Posts: 2
How can I make a way to embed the last 10 songs played into my website in html code

hello
Is their a way to embed or create a way to have the last 10 songs that were played appear on our radio staiton page? Like a certain script or something? i could do with it in html code i have one in php but it dont work


PHP Code:
<?php 

// last10.php -- get and display last n tracks... 
// URL syntax: 
// last10.php?host={http://s3.myradiostream.com}&port={58074}&n={lastN} 
// 
// {bracketed} items need to be replaced or they will default as below. 
// 
// I can return Javascript or HTML only. 
// 

/* keep warnings from our output */ 
error_reporting(E_ERROR); 

// -- Server Info here -- // 

$yourIP    'http://s3.myradiostream.com'
$yourPORT  '58074'

// -- Tweak Display Here -- // 

$bgcolor   '#ffffff'// Page background color 
$tablew    '400';     // Table width 
$toprow    '#c0c0c0'// Top background color 
$bottom    '#ffffff'// Bottom background color 
$border    '#000000'// Border color 
$thickness '2';       // Border thickness 
$padding   '4';       // Cell padding 
$font      'Verdana'// Font 
$fontsize  '2';       // Font size 

$refresh   '30';      // How often should it refresh? (seconds) 

// Return JavaScript or HTML 
$jsOutput=FALSE// TRUE=js | FALSE=HTML 

// try to get the target from the url... 
$host $_REQUEST***91;host***93;; 
if (!
$host$host $yourIP
$port $_REQUEST***91;port***93;; 
if (!
$port$port $yourPORT

$lf chr(10); // 0x0A ***91;\n***93; 

// The lastN is configurable at the DNAS with, ShowLastSongs= it defaults to 10 and has a maximum of 20 
$t_max $_REQUEST***91;n***93;; 
if (!
t_max || $t_max<|| $t_max>19$t_max=10
//19 is the max here because 20=current_track+19 

// Let's get /index.html first... to keep this short, there is no code to handle the dnas being down 
// or not running, so the script will display nothing in those cases. 

$connect_timeout=5
$success=0

$fp1 fsockopen($host$port, &$errno, &$errstr$connect_timeout); //open connection 
if(!$fp1) { //if this fails, I'm done.... 
fclose($fp1); 
$success++; 
} else { 
$request="GET /index.html HTTP/1.1\r\nHost:" $host ":" $port "\r\nUser-Agent: SHOUTcast DNAS Status ***91;index***93; * (Mozilla/PHP)\r\nConnection: close\r\n\r\n"//get index.html 
fputs($fp1,$request,strlen($request)); 
$page=''
while(!
feof($fp1)) { 
$page .= fread($fp116384); 

fclose($fp1); 

// now I have the entire /index.html in $page -- all I want from here is the current track... 
// (hint-hint) 

$song00 ereg_replace("</b></td>.*"""ereg_replace(".*Current Song: </font></td><td><font class=default><b>"""$page)); // easy, right <img src="images/smilies/smile.gif" border="0" alt=""> 

// now let's get /played.html... (this is kinda long) 
$fp fsockopen($host$port, &$errno, &$errstr$connect_timeout); 
if(!
$fp) { //if connection could not be made 
fclose($fp); 
$success++; 

} else { 
$request="GET /played.html HTTP/1.1\r\nHost: " $host ":" $port "\r\nUser-Agent: SHOUTcast DNAS Status ***91;played***93; * (Mozilla/PHP)\r\n"."Connection: close\r\n\r\n"
fputs($fp,$request,strlen($request)); 
$page=''
while (!
feof($fp)) { 
$page .= fread($fp16384); 

fclose($fp); //close connection 
$played_html=$page

if (
$played_html) { 
$played_htmlereg_replace('<x>','|-|',ereg_replace('</tr>','',ereg_replace('</td><td>','<x>',ereg_replace('<tr><td>','',ereg_replace('</tr>','</tr>' $lf,ereg_replace('-->','--***93;',ereg_replace('<!--','***91;!--',ereg_replace('</table><br><br>.*','',ereg_replace('.*<b>Current Song</b></td></tr>','',$played_html))))))))); 
$xxn=strlen($played_html); 
$r=2
$t_count=0
$reading=0
$track***91;0***93;=$song00
while (
$r<$xxn $t_count<=$t_max){ 
$cur=substr($played_html,$r,1); 
if (
$cur==$lf$reading=0
if (
$reading==1$track***91;$t_count***93; .= $cur
if (
$cur=="|" substr($played_html,$r-1,1)=="-" substr($played_html,$r-2,1)=="|") { 
$reading=1
$t_count++; 

$r++; 





// I now have $track***91;0-N***93; containg the current plus last N tracks... 
// Output time... 

if ($success==0) { 

if (
$jsOutput) { // JavaScript - used as <script src=...></script> 
header('Content-type: text/javascript'); 
} else { 
// HTML... (iFrames anyone?) 
echo '<HTML> 
<HEAD><TITLE>TITLE OF YOUR PAGE HERE - Now Playing: ' 
$track***91;0***93; . '</title> 
<meta http-equiv="refresh" content="' 
$refresh ';URL=' $_SERVER***91;'PHP_SELF'***93; . '?host=' $host '&port=' $port '"> 
</head> 
<BODY bgcolor=' 
$bgcolor '>'


$r=0
$output_string=''

//tweak the output string (the table init) here.... 
$output_string .= '<table width="' $tablew '" style="border-collapse: collapse" border="' $thickness '" bordercolor="' $border '"><tr bgcolor="' $toprow '"><td> 
<table width="100%" border="0" cellpadding="' 
$padding '"><tr><td> 
<font face=' 
$font ' size=' $fontsize '>'//Now playing...  

while ($r<=$t_max){ 
if (
$r==0$output_string .= 'Now Playing:<br> <b>'.str_replace("'""'",str_replace('"''"',$track***91;$r***93;)).'</b></td></tr></table></td></tr><tr><td><table bgcolor=' $bottom ' width="100%" border="0" cellpadding="' $padding '"><tr><td><br><font face=' $font ' size=' $fontsize '><i>Before that you heard:</i><br><br>'
else 
$output_string .= str_replace("'""'",str_replace('"''"',$track***91;$r***93;)) . '<br>'

$r++; 


// I also want to close the table code now.... 
$output_string .= '</td></tr></table></td></tr></font></td></tr></table>'

if (
$jsOutput) { 
echo 
"document.write('" $output_string "');"
} else { 
echo 
$output_string '</body></html>'


} else { 
// I couldn't connect to the DNAS 
   
if ($jsOutput) echo "document.write('Off Air');"
   else echo 
"<HTML><HEAD><TITLE>Off-Air</title></head> 
<BODY bgcolor=" 
$bgcolor "><font face=" $font " size=" $fontsize ">Server is <b>Off-Air</b>, try again later.</body></html>"


?>
froggyrichy2 is offline   Reply With Quote
Old 18th May 2011, 06:58   #2
hackerdork
Forum King
 
hackerdork's Avatar
 
Join Date: Feb 2006
Location: Earth Circa sometime.
Posts: 3,297
scripts need to be in php, perl, python or other language to RUN.

you should point to http://url.of.stream:PORT/played.html (this is an example) as played.html is automatically generated by shoutcast

parsing the last played inst too difficult but your webhost MUST and I mean MUST have the ability for you to run scripts like php. if you are using a free hosting site or other that does not support PHP that you are out of luck
[code]
code:



<?php
// by dstjohn a t spacialaudio.com
// there are many ways to do this, below are 4.

//change to shoutcast server url location
$host = "###.###.###.###"

$port = "8000";
$fp = @fsockopen("$host", $port, &$errno, &$errstr, 30); //open connection
if(!$fp) {
$success=2; //set if no connection
}
if($success!=2){ //if connection
fputs($fp,"GET /7.html HTTP/1.0\r\nUser-Agent: SHOUTcast Playing (Mozilla Compat
ible)\r\n\r\n"); //get 7.html
while(!feof($fp)) {
$page .= fgets($fp, 1000);
}
@fclose($fp); //close connection
$page = ereg_replace(".*<body>", "", $page); //extract data
$page = ereg_replace("</body>.*", ",", $page); //extract data
$numbers = explode(",",$page); //extract data
$currentlisteners = $numbers[0]; //set variable
$whatsplaying = $numbers[6]; //set variable

echo 'Now Playing : ';
echo $whatsplaying;
?>



more info http://forums.winamp.com/showthread.php?t=330611

does work . I have it running on my site, which of course can run php just fine

~ According to the ship's log we're down to our last 3000 vomit bags.It'll never be enough.
search the forums! don't PM me on how-to, or ask me to setup you system. you do it so you learn.
hackerdork is offline   Reply With Quote
Reply
Go Back   Winamp & Shoutcast Forums > Shoutcast > Shoutcast Discussions

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump