Song History PHP ShoutCast v2

PHP, HTML, Joomla, WordPress, etc..
Plaats reactie
Gebruikersavatar
BeatFlexx
*
Berichten: 10
Lid geworden op: 14 okt 2017, 09:48
SAM-versie: 4.9.0.*
Database: FireBird
Windows: XP
Locatie: Rotterdam
Contacteer:

Song History PHP ShoutCast v2

Ongelezen bericht door BeatFlexx » 18 okt 2017, 20:24

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.
Let The Beat Control Your Mind >> http://beatflexx.com [smilie=music.gif]

Gebruikersavatar
BeatFlexx
*
Berichten: 10
Lid geworden op: 14 okt 2017, 09:48
SAM-versie: 4.9.0.*
Database: FireBird
Windows: XP
Locatie: Rotterdam
Contacteer:

Re: Song History PHP

Ongelezen bericht door BeatFlexx » 24 okt 2017, 13:03

EDIT: Dit script heeft altijd normaal gewerkt op de v1.
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);
}
Let The Beat Control Your Mind >> http://beatflexx.com [smilie=music.gif]

Gebruikersavatar
BeatFlexx
*
Berichten: 10
Lid geworden op: 14 okt 2017, 09:48
SAM-versie: 4.9.0.*
Database: FireBird
Windows: XP
Locatie: Rotterdam
Contacteer:

Re: Song History PHP

Ongelezen bericht door BeatFlexx » 24 okt 2017, 16:50

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.

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>';
}
?>
Let The Beat Control Your Mind >> http://beatflexx.com [smilie=music.gif]

Gebruikersavatar
drOhimself
Moderator
Berichten: 2941
Lid geworden op: 27 mar 2010, 11:44
SAM-versie: SAM 2014.7
Database: MySQL 5.0
Windows: 2000

Re: Song History PHP

Ongelezen bericht door drOhimself » 24 okt 2017, 22:32

Dank voor het delen !
Groedjez,
drO

aart
Beginnende SAM-gebruiker
Berichten: 1
Lid geworden op: 16 feb 2018, 17:45
SAM-versie: 2.8.3.
Database: Geen Database

Re: Song History PHP ShoutCast v2

Ongelezen bericht door aart » 22 jul 2019, 04:13

mooi script bedankt voor het delen.
maar hoe krijg ik de tijd gelijk staat nu 2 uur achter

met vriendelijke groet

Gebruikersavatar
Wout
Moderator
Berichten: 3227
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: SAM 2018.10
Database: MySQL 8.0
Windows: Windows 10
Locatie: Bergen op Zoom
Contacteer:

Re: Song History PHP ShoutCast v2

Ongelezen bericht door Wout » 22 jul 2019, 11:40

Verander onderstaande regel naar

Code: Selecteer alles

$date = new DateTime("@$ts");

Code: Selecteer alles

$date = new DateTime("@$ts");
$date->setTimezone(new DateTimeZone("Europe/Amsterdam"));
Afbeelding

Plaats reactie
  • Vergelijkbare Onderwerpen
    Reacties
    Weergaves
    Laatste bericht