Beste,
Ik ben overgestapt naar shoutcast v2 en nu werk mijn song history script niet meer.
Nu ben ik al een x aantal dagen aan het googlen, maar helaas zonder resultaat.
Is er misschien iemand die mij op weg kan helpen ?
Alvast bedankt.
Song History PHP ShoutCast v2
Re: Song History PHP
EDIT: Dit script heeft altijd normaal gewerkt op de v1.
Echter krijg ik zelf een HTTP ERROR 500.
Echter krijg ik zelf een HTTP ERROR 500.
Code: Selecteer alles
error_reporting(0);
$scip = "xxx.xx.xxx.xx"; // Server IP
$scport = "POORT"; // Port
$scpass = "**********"; // Password
$scversion = "2"; // Shoutcast Version
$scID = "1"; // Server ID
$imgKey = "MYAPI"; // LastFM api to Get Images
$scfp = fsockopen("$scip", $scport, &$errno, &$errstr, 30);
if(!$scfp) {
$scsuccs=1;
echo'Offline';
}
if($scsuccs!=1){
fputs ($scfp, "GET /admin.cgi?sid=$scID&pass=$scpass&mode=viewxml&page=4 HTTP/1.1\r\nHost: $scip:$scport\r\n .
User-Agent: User (Mozilla Compatible)\r\n .
Authorization: Basic ".base64_encode ("admin:$scpass")."\r\n\r\n");
while(!feof($scfp)) {
$page .= fgets($scfp, 1000);
}
$loop = array("STREAMSTATUS", "BITRATE");
$y=0;
while($loop[$y]!=''){
$pageed = ereg_replace(".*<$loop[$y]>", "", $page);
$scphp = strtolower($loop[$y]);
$$scphp = ereg_replace("</$loop[$y]>.*", "", $pageed);
if($loop[$y]==SERVERGENRE || $loop[$y]==SERVERTITLE || $loop[$y]==SONGTITLE)
$$scphp = urldecode($$scphp);
$y++;
}
$pageed = ereg_replace(".*<SONGHISTORY>", "", $page);
$pageed = ereg_replace("</SONGHISTORY>.*", "", $pageed);
$songatime = explode("<SONG>", $pageed);
$a = 0;
$r=1;
while($songatime[$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]);
list ($artiest, $titel) = explode(" - ", $song[$t]);
$rij_kleur = ($a++ % 2) ? "#f5f5f5" : "#e8e8e8";
$xml = simplexml_load_file("http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=$artiest&api_key=$imgKey");
$trackimg = $xml->artist->image[2];
if ($trackimg == "") {
$trackimg = "../noIMG.png";
}
if ($artiest == "LIVE" AND $titel == "-=ON AIR=-") {
$trackimg = "../live.jpg";
}
echo'<div style="background-color: '.$rij_kleur.';>
<p style="width: 65px;"><img style="margin-top:5px; margin-left:5px; border-radius: 100%; border: 1px solid #ff1190; width: 60px; height: 60px;" src="'.$trackimg.'" /></p>
<div style="display:block; margin: -66px 0px 0px 80px; float:left;">
<i class="fa fa-microphone"></i> <strong>'.$artiest.'</strong><br />
'.$titel.'</a>
</div></div>';
$r++; }
fclose($scfp);
}
Re: Song History PHP
Beste,
Voor de mensen die nog druk aan het zoeken zijn, heb ik er toch maar voor gekozen om een ander script te maken.
Deze werkt overigens perfect voor mij.
Voor de mensen die nog druk aan het zoeken zijn, heb ik er toch maar voor gekozen om een ander script te maken.
Deze werkt overigens perfect voor mij.
Code: Selecteer alles
<?php
$sIP = "127.0.0.1";
$sPort = "8000";
$sID = "1";
$sPass = "CHANGEME";
$imgKey = "MYAPI";
$a = 0;
$b = 0;
function truncate($string, $length, $dots = "...") {
return (strlen($string) > $length) ? substr($string, 0, $length - strlen($dots)) . $dots : $string;
}
$url = file_get_contents("http://$sIP:$sPort/admin.cgi?pass=$sPass&mode=viewxml&page=4&sid=$sID");
$xml = simplexml_load_string($url);
foreach( $xml -> SONGHISTORY -> SONG as $Key => $Value ) {
list ($artist, $title) = explode(" - ", $Value -> TITLE);
$row_color = ($a++ % 2) ? "#fafafa" : "#f5f5f5";
$nowplaying = ($b++ % 20) ? "" : "<font style='color:#b2b2b2;font-size:10px;'><strong>NOW PLAYING</strong></font>";
$LastFM = simplexml_load_file("http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=$artist&api_key=$imgKey");
$trackimg = $LastFM->artist->image[2];
if ($trackimg == "") {
$trackimg = "noIMG.png";
}
if ($trackimg == "https://lastfm-img2.akamaized.net/i/u/174s/62ed6ff00329486d8f56656ef783d1aa.png") {
$trackimg = "noIMG.png";
}
if ($artist == "LIVE" AND $title == "-=ON AIR=-") {
$trackimg = "live.png";
}
$ts = $Value -> PLAYEDAT;
$date = new DateTime("@$ts");
echo'
<div style="background-color: '.$row_color.';>
<p style="width: 65px;"><img style="margin-top:5px; margin-left:5px; border-radius: 100%; border: 1px solid #ff1190; width: 60px; height: 60px;" src="'.$trackimg.'" /></p>
<div style="display:block; margin: -66px 0px 0px 80px; float:left;">
<font style="font-size:15px;"><i class="fa fa-microphone"></i> <strong>'.truncate($artist, 100).'</strong></font><br />
<font style="color:#ff1190;font-size:13px;"><i class="fa fa-headphones"></i> '.truncate($title, 100).'</font><br />' . $nowplaying . '
</div>
<div style="display:block; margin: -55px 10px 0px 0px; float:right;">
<font style="color:#b2b2b2;font-size:10px;"><i class="fa fa-clock-o"></i> ' . $date->format('g:i:s A') . '</font>
</div>
</div>';
}
?>
Re: Song History PHP ShoutCast v2
mooi script bedankt voor het delen.
maar hoe krijg ik de tijd gelijk staat nu 2 uur achter
met vriendelijke groet
maar hoe krijg ik de tijd gelijk staat nu 2 uur achter
met vriendelijke groet
- Wout
- Beheerder
- Berichten: 3501
- Lid geworden op: 03 dec 2007, 14:17
- SAM-versie: 2019.3
- Database: MariaDB
- Windows: 11
- Locatie: West-Brabant
- Contacteer:
Re: Song History PHP ShoutCast v2
Verander onderstaande regel naar
Code: Selecteer alles
$date = new DateTime("@$ts");
Code: Selecteer alles
$date = new DateTime("@$ts");
$date->setTimezone(new DateTimeZone("Europe/Amsterdam"));
-
- Vergelijkbare Onderwerpen
- Reacties
- Weergaves
- Laatste bericht