Shoutcast 2 History
|
ckoneman04 |
Geschrieben am 02.05.2017 um 14:42
|

Mitglied

Beiträge: 82
Registriert am: 13.11.13
|
Hab da ein Script um meine History abzufragen. Funktioniert soweit, nur das er mir statt die Uhrzeit einen Zeitstempel anzeigt.
Hier der Code:
Code <?php
// Streamdaten //
$host = "ip";
$port = port;
$id = 1;
$type = "xml";
$pass = "pw";
// Auslesen der XML //
$streamurl = $host.":".$port."/played.html?sid=".$id."&type=".$type."&pass=".$pass;
$niceurl = urlencode($streamurl);$lastplayed = simplexml_load_file($niceurl);
// XML-Daten für einen Titel in Variablen übergeben //
$titel = $lastplayed->SONGHISTORY->SONG[1]->TITLE;
$timestamp = $lastplayed->SONGHISTORY->SONG[1]->PLAYEDAT;
$titel2 = $lastplayed->SONGHISTORY->SONG[2]->TITLE;
$timestamp2 = $lastplayed->SONGHISTORY->SONG[2]->PLAYEDAT;
$titel3 = $lastplayed->SONGHISTORY->SONG[3]->TITLE;
$timestamp3 = $lastplayed->SONGHISTORY->SONG[3]->PLAYEDAT;
$titel4 = $lastplayed->SONGHISTORY->SONG[4]->TITLE;
$timestamp4 = $lastplayed->SONGHISTORY->SONG[4]->PLAYEDAT;
$titel5 = $lastplayed->SONGHISTORY->SONG[5]->TITLE;
$timestamp5 = $lastplayed->SONGHISTORY->SONG[5]->PLAYEDAT;
$titel6 = $lastplayed->SONGHISTORY->SONG[6]->TITLE;
$timestamp6 = $lastplayed->SONGHISTORY->SONG[6]->PLAYEDAT;
$titel7 = $lastplayed->SONGHISTORY->SONG[7]->TITLE;
$timestamp7 = $lastplayed->SONGHISTORY->SONG[7]->PLAYEDAT;
$titel8 = $lastplayed->SONGHISTORY->SONG[8]->TITLE;
$timestamp8 = $lastplayed->SONGHISTORY->SONG[8]->PLAYEDAT;
$titel9 = $lastplayed->SONGHISTORY->SONG[9]->TITLE;
$timestamp9 = $lastplayed->SONGHISTORY->SONG[9]->PLAYEDAT;
$titel10 = $lastplayed->SONGHISTORY->SONG[10]->TITLE;
$timestamp10 = $lastplayed->SONGHISTORY->SONG[10]->PLAYEDAT;
echo "$titel $timestamp<br>";
echo "$titel2 $timestamp2<br>";
echo "$titel3 $timestamp3<br>";
echo "$titel4 $timestamp4<br>";
echo "$titel5 $timestamp5<br>";
echo "$titel6 $timestamp6<br>";
echo "$titel7 $timestamp7<br>";
echo "$titel8 $timestamp8<br>";
echo "$titel9 $timestamp9<br>";
echo "$titel10 $timestamp10<br>";
?>
Bearbeitet von Septron am 16.05.2017 um 10:24
|
|
|
|
John Doe |
Geschrieben am 02.05.2017 um 14:46
|

Veteran Mitglied

Beiträge: 878
Registriert am: 23.10.13
|
Das auslesen ginge auch so:
Code <?php
// CONFIGURATION
$ip = 'xx.xxx.xxx.xx'; // IP vom Shoutcast 2 Server eintragen
$port = 'xxxx'; // Port vom Shoutcast 2 Server eintragen
$sid = '1'; // StreamID vom Shoutcast 2 Server eintragen
//Songhistory
$songhistory = file_get_contents("http://".$ip.":".$port."/played.html?sid=".$sid);
$startstring = '<table class="default" border="0" cellpadding="2" cellspacing="2">';
$endstring = '</table><br>';
$posstart = strpos($songhistory, $startstring);
$posend = strpos($songhistory, $endstring);
$laenge = $posend - $posstart;
$song_history = substr($songhistory, $posstart, $laenge);
//Ausgabe
echo $song_history;
?> |
|
|
|
Dat Tunes |
Geschrieben am 02.05.2017 um 15:21
|

Betreiber

Beiträge: 618
Registriert am: 23.10.13
|
Den Timestamp einfach umrechnen lassen mit showdate.
Code '.showdate("%d.%b.%y - %h:%m:%s", $timestamp10).'
Wenn es extern geladen wird ohne Fusion Funktionen
Code '.date("%d.%b.%y - %h:%m:%s", $timestamp10).'
Das Problem ist nicht das Problem, das Problem ist der Nutzer, der das Problem verursacht.
Was lernen wir ?
Wir entfernen einfach den Nutzer und das Problem ist gelöst !
Sollte das Problem nicht gelöst sein, WD40! WD40 hilft immer !
|
|
|
|
ckoneman04 |
Geschrieben am 02.05.2017 um 15:23
|

Mitglied

Beiträge: 82
Registriert am: 13.11.13
|
An welche Stelle muss das denn im Code ? |
|
|
|
Dat Tunes |
Geschrieben am 02.05.2017 um 15:27
|

Betreiber

Beiträge: 618
Registriert am: 23.10.13
|
Bei deinen Script dann so:
Code echo "$titel10 ".showdate('%d.%b.%y - %h:%m:%s', $timestamp10)."<br>";
Ungetestet, kann sein du die " mit ' tauschen musst oder anderes rum.
Grade noch nicht ganz wieder daheim angekommen.
Das Problem ist nicht das Problem, das Problem ist der Nutzer, der das Problem verursacht.
Was lernen wir ?
Wir entfernen einfach den Nutzer und das Problem ist gelöst !
Sollte das Problem nicht gelöst sein, WD40! WD40 hilft immer !
|
|
|
|
ckoneman04 |
Geschrieben am 02.05.2017 um 15:33
|

Mitglied

Beiträge: 82
Registriert am: 13.11.13
|
Na es klappt nicht wirklich.... Hab es mit "showdate" und "date" versucht, hab mit " und mit ' versucht. Keine Ausgabe der Zeit
Zusammengefügt am 02. Mai 2017 um 15 5:12:
Warning: date() expects parameter 2 to be long, object given in /www/htdocs/w0165182/radio-chaos-factory.de/infusions/sw_streamstatus1_panel/letztensongs.php on line 41
Bearbeitet von ckoneman04 am 02.05.2017 um 15:35
|
|
|
|
Dat Tunes |
Geschrieben am 02.05.2017 um 15:42
|

Betreiber

Beiträge: 618
Registriert am: 23.10.13
|
Hänge mal die ganze Datei an, so kann man nichts machen.
Das Problem ist nicht das Problem, das Problem ist der Nutzer, der das Problem verursacht.
Was lernen wir ?
Wir entfernen einfach den Nutzer und das Problem ist gelöst !
Sollte das Problem nicht gelöst sein, WD40! WD40 hilft immer !
|
|
|
|
ckoneman04 |
Geschrieben am 02.05.2017 um 15:43
|

Mitglied

Beiträge: 82
Registriert am: 13.11.13
|
Alles klar hier ist die Datei 
ckoneman04 hat folgende Datei angehängt:
Du hast nicht die Berechtigung die Anhäge dieses Themas zu sehen.
|
|
|
|
Dat Tunes |
Geschrieben am 02.05.2017 um 15:53
|

Betreiber

Beiträge: 618
Registriert am: 23.10.13
|
Nimm das mal unten
Code echo "".$titel." ".showdate('%d.%b.%y - %h:%m:%s', $timestamp)."<br>";
echo "".$titel2." ".showdate('%d.%b.%y - %h:%m:%s', $timestamp2)."<br>";
echo "".$titel3." ".showdate('%d.%b.%y - %h:%m:%s', $timestamp3)."<br>";
echo "".$titel4." ".showdate('%d.%b.%y - %h:%m:%s', $timestamp4)."<br>";
echo "".$titel5." ".showdate('%d.%b.%y - %h:%m:%s', $timestamp5)."<br>";
echo "".$titel6." ".showdate('%d.%b.%y - %h:%m:%s', $timestamp6)."<br>";
echo "".$titel7." ".showdate('%d.%b.%y - %h:%m:%s', $timestamp7)."<br>";
echo "".$titel8." ".showdate('%d.%b.%y - %h:%m:%s', $timestamp8)."<br>";
echo "".$titel9." ".showdate('%d.%b.%y - %h:%m:%s', $timestamp9)."<br>";
echo "".$titel10." ".showdate('%d.%b.%y - %h:%m:%s', $timestamp10)."<br>";
Das Problem ist nicht das Problem, das Problem ist der Nutzer, der das Problem verursacht.
Was lernen wir ?
Wir entfernen einfach den Nutzer und das Problem ist gelöst !
Sollte das Problem nicht gelöst sein, WD40! WD40 hilft immer !
|
|
|
|
ckoneman04 |
Geschrieben am 02.05.2017 um 16:12
|

Mitglied

Beiträge: 82
Registriert am: 13.11.13
|
Mhhh es will nicht.... hab das showdate mal in date geändert weil es nix mit Fusion zu tun hat soll unabhängig laufen 
ckoneman04 hat folgende Datei angehängt:
Du hast nicht die Berechtigung die Anhäge dieses Themas zu sehen.
Bearbeitet von ckoneman04 am 03.05.2017 um 16:36
|
|
|
|
Systemweb |
Geschrieben am 09.05.2017 um 14:12
|

Administrator
 Inoffizielles DE Updatepack

Beiträge: 530
Registriert am: 01.07.14
|
Basierend auf Harlekins Vorschlag habe ich das ganze für die aktuelle Shoutcast Version 2.5.1.724 angepasst, da sich zwischenzeitlich der Quellcode der Ausgabe etwas geändert hat.
Die angehängte Datei einfach ins Rootverzeichnis von Fusion packen, verlinken, Parameter anpassen.
Systemweb hat folgende Datei angehängt:
Du hast nicht die Berechtigung die Anhäge dieses Themas zu sehen.
|
|
|
|
ckoneman04 |
Geschrieben am 10.05.2017 um 12:51
|

Mitglied

Beiträge: 82
Registriert am: 13.11.13
|
Ich habe meins jetzt auch fertiggestellt.
Hier der Code:
Code <?php
/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright © 2002 - 2008 Nick Jones
| http://www.php-fusion.co.uk/
+--------------------------------------------------------+
| Title: Letze Songs Panel (Shoutcast2) for PHP-Fusion 7
| Filename: letztensongs.php
| Author: Chrissi
+--------------------------------------------------------+
| This program is released as free software under the
| Affero GPL license. You can redistribute it and/or
| modify it under the terms of this license which you
| can read by viewing the included agpl.txt or online
| at www.gnu.org/licenses/agpl.html. Removal of this
| copyright header is strictly prohibited without
| written permission from the original author(s).
+--------------------------------------------------------*/
require_once "maincore.php";
require_once THEMES."templates/header.php";
// Streamdaten //
$host = "IP mit http://";
$port = "Port";
$id = "1";
$type = "xml";
$pass = "Stream PW";
// Auslesen der XML //
$streamurl = $host.":".$port."/played.html?sid=".$id."&type=".$type."&pass=".$pass;
$niceurl = urlencode($streamurl);$lastplayed = simplexml_load_file($niceurl);
// XML-Daten für einen Titel in Variablen übergeben //
setlocale(LC_TIME, "de_DE.utf8");
date_default_timezone_set("Europe/Berlin");
$titel = $lastplayed->SONGHISTORY->SONG[0]->TITLE;
$titel1 = $lastplayed->SONGHISTORY->SONG[1]->TITLE;
$zeitstempel1 = $lastplayed->SONGHISTORY->SONG[1]->PLAYEDAT;
$titel2 = $lastplayed->SONGHISTORY->SONG[2]->TITLE;
$zeitstempel2 = $lastplayed->SONGHISTORY->SONG[2]->PLAYEDAT;
$titel3 = $lastplayed->SONGHISTORY->SONG[3]->TITLE;
$zeitstempel3 = $lastplayed->SONGHISTORY->SONG[3]->PLAYEDAT;
$titel4 = $lastplayed->SONGHISTORY->SONG[4]->TITLE;
$zeitstempel4 = $lastplayed->SONGHISTORY->SONG[4]->PLAYEDAT;
$titel5 = $lastplayed->SONGHISTORY->SONG[5]->TITLE;
$zeitstempel5 = $lastplayed->SONGHISTORY->SONG[5]->PLAYEDAT;
$titel6 = $lastplayed->SONGHISTORY->SONG[6]->TITLE;
$zeitstempel6 = $lastplayed->SONGHISTORY->SONG[6]->PLAYEDAT;
$titel7 = $lastplayed->SONGHISTORY->SONG[7]->TITLE;
$zeitstempel7 = $lastplayed->SONGHISTORY->SONG[7]->PLAYEDAT;
$titel8 = $lastplayed->SONGHISTORY->SONG[8]->TITLE;
$zeitstempel8 = $lastplayed->SONGHISTORY->SONG[8]->PLAYEDAT;
$titel9 = $lastplayed->SONGHISTORY->SONG[9]->TITLE;
$zeitstempel9 = $lastplayed->SONGHISTORY->SONG[9]->PLAYEDAT;
$titel10 = $lastplayed->SONGHISTORY->SONG[10]->TITLE;
$zeitstempel10 = $lastplayed->SONGHISTORY->SONG[10]->PLAYEDAT;
$abspielzeit = date("H:i", "$zeitstempel");
$abspielzeit1 = date("H:i", "$zeitstempel1");
$abspielzeit2 = date("H:i", "$zeitstempel2");
$abspielzeit3 = date("H:i", "$zeitstempel3");
$abspielzeit4 = date("H:i", "$zeitstempel4");
$abspielzeit5 = date("H:i", "$zeitstempel5");
$abspielzeit6 = date("H:i", "$zeitstempel6");
$abspielzeit7 = date("H:i", "$zeitstempel7");
$abspielzeit8 = date("H:i", "$zeitstempel8");
$abspielzeit9 = date("H:i", "$zeitstempel9");
$abspielzeit10 = date("H:i", "$zeitstempel10");
opentable('Die letzten 10 gespielten Titel');
echo "<table><tr>";
echo "<td width='120'>";
echo "<b><div style='background-color:white'><font color='black'> Uhrzeit</font></div></b><br>";
echo " <font color='red'>Aktuell</font><br><br>";
echo " $abspielzeit1<br><br>";
echo " $abspielzeit2<br><br>";
echo " $abspielzeit3<br><br>";
echo " $abspielzeit4<br><br>";
echo " $abspielzeit5<br><br>";
echo " $abspielzeit6<br><br>";
echo " $abspielzeit7<br><br>";
echo " $abspielzeit8<br><br>";
echo " $abspielzeit9<br><br>";
echo " $abspielzeit10";
echo "</td>";
echo "<td width='700'>";
echo "<b><div style='background-color:white'><font color='black'> Titel</font></div></b><br>";
echo " $titel<br><br>";
echo " $titel1<br><br>";
echo " $titel2<br><br>";
echo " $titel3<br><br>";
echo " $titel4<br><br>";
echo " $titel5<br><br>";
echo " $titel6<br><br>";
echo " $titel7<br><br>";
echo " $titel8<br><br>";
echo " $titel9<br><br>";
echo " $titel10";
echo "</td>";
echo "</tr></table><br>";
closetable();
require_once THEMES."templates/footer.php";
?>
Anbei habe ich das ganze aber auch noch als Datei gehangen.
ckoneman04 hat folgende Datei angehängt:
Du hast nicht die Berechtigung die Anhäge dieses Themas zu sehen.
Bearbeitet von Septron am 16.05.2017 um 10:23
|
|
|
|
Snoopy01 |
Geschrieben am 15.05.2017 um 14:20
|

Neuling

Beiträge: 7
Registriert am: 17.05.15
|
Hallo zusammen
bräuchte mal eure hilfe
ich bekomme dieses nicht gebacken da ein zubauen es geht um diese datei streamhistory.php
ich setz mal ein ausschnitt von meiner theme als code hier rein wo das mit der streamhistory rein soll
Code echo "<td class='box2' height='150' width='380' align='center' valign='top'><div class='box2div'><div style='padding:5px; font-weight:bold;'>";
echo "<h4>Wunsch / Gruss Box</h4>\n";
include INFUSIONS."studiobox_panel/studiobox_panel.php";
echo "</div></div></td>";
echo "<td class='box3' height='170' width='560%' align='center' valign='top'><div class='box3div'><div style='padding:5px; font-weight:bold; font-size:12px;'><center><span class='shadow'>Zuletzt gespielte Lieder</span>";
HIER SOLL DIESE SONGHISTORY REIN ????)
echo "</div></div></td>";
echo "</tr><tr><td colspan='4' height=''></td></tr><tr>
<td class='nobar' height='' width='100%' align='center' colspan='4'></td></tr>
</table>";
wäre euch dankbar dafür wenn wer mir helfen könnte |
|
|
|
ckoneman04 |
Geschrieben am 15.05.2017 um 18:41
|

Mitglied

Beiträge: 82
Registriert am: 13.11.13
|
Mach die Streamhistory ins Root Verzeichnis deiner PHP Fusion Page und setz an deiner Stelle folgendes ein:
Code echo "<td class='box2' height='150' width='380' align='center' valign='top'><div class='box2div'><div style='padding:5px; font-weight:bold;'>";
echo "<h4>Wunsch / Gruss Box</h4>\n";
include INFUSIONS."studiobox_panel/studiobox_panel.php";
echo "</div></div></td>";
echo "<td class='box3' height='170' width='560%' align='center' valign='top'><div class='box3div'><div style='padding:5px; font-weight:bold; font-size:12px;'><center><span class='shadow'>Zuletzt gespielte Lieder</span>";
include BASEDIR.'streamhistory.php';
echo "</div></div></td>";
echo "</tr><tr><td colspan='4' height=''></td></tr><tr>
<td class='nobar' height='' width='100%' align='center' colspan='4'></td></tr>
</table>";
Bearbeitet von Septron am 16.05.2017 um 10:24
|
|
|
|
Systemweb |
Geschrieben am 15.05.2017 um 22:10
|

Administrator
 Inoffizielles DE Updatepack

Beiträge: 530
Registriert am: 01.07.14
|
Keine gute Idee, auf diese Weise wird die komplette Seite inkl. Header, Panels und Footer nochmal included. |
|
|
|
John Doe |
Geschrieben am 16.05.2017 um 08:30
|

Veteran Mitglied

Beiträge: 878
Registriert am: 23.10.13
|
Man kann die streamhistory.php durchaus per include einbinden, allerdings sollte man dann in der Datei selbst die folgenden Codezeilen löschen oder auskommentieren:
Code require_once "maincore.php";
require_once THEMES."templates/header.php";
add_to_title(" - zuletzt gespielte Titel");
Code opentable("Liste der 10 zuletzt gespielten Titel");
Code closetable();
require_once THEMES."templates/footer.php";
Eine andere Möglichkeit wäre, daraus ein Panel zu bauen und dieses dann an entsprechender Stelle zu includen.
Ausserdem kann es sein, dass man optisch noch ein bisschen was anpassen muss.
Dieses Mitglied wurde gelöscht!
|
|
|
|
Systemweb |
Geschrieben am 16.05.2017 um 10:20
|

Administrator
 Inoffizielles DE Updatepack

Beiträge: 530
Registriert am: 01.07.14
|
Wichtig ist vor allem, dass dieser Code nur mit der aktuellen Shoutcast v2 Version läuft, da der Quellcode in den Versionen abweicht und die gesetzten Schnittpunkte für den Auszug der relevanten Infos nach den definierten Quellcode-Elementen sucht.
Wenn es dabei Abweichungen gibt, bleibt die Ausgabe nämlich leer.
Wer also eine Vorgängerversion oder sogar noch Shoutcast v1 nutzt muss die entspr. Passagen abändern. |
|
|
|
rotz |
Geschrieben am 18.05.2017 um 21:29
|

Mitglied

Beiträge: 72
Registriert am: 29.03.17
|
gebe dir ein Tip-----fange die file_get_contents per XMl ab |
|
|
|
Systemweb |
Geschrieben am 22.05.2017 um 14:30
|

Administrator
 Inoffizielles DE Updatepack

Beiträge: 530
Registriert am: 01.07.14
|
Zitat: rotz schrieb:
gebe dir ein Tip-----fange die file_get_contents per XMl ab
Sicher ist hier gemeint, die Infos per XML auszulesen.
Hierfür muss man sich authentifizieren. In diesem Thread ist diese Methode bereits angesprochen worden und als Beispielcode vorhanden.
Allerdings bin ich auf diesen Code nicht näher eingegangen, denn im Beispiel wird mittels URL-Parameter authentifiziert, was keineswegs ratsam ist. Sollte nämlich das Script mal zu einem Fehler führen, könnte das Passwort aus der Fehlermeldung herausgelesen werden.
Besser wäre, die Authentifizierung mittels Request zu verwenden. Dafür müsste das Beispiel jedoch um einiges abgeändert werden.
Einfacher erschien mir, die 7.html ohne erforderliche Authentifizierung zu verwenden. Diese Methode spart CPU-Leistung, RAM, Zeit ... erfordert aber den Einsatz der aktuellsten v2 Version von Shoutcast.
Bearbeitet von Systemweb am 22.05.2017 um 15:09
|
|
|
|
ckoneman04 |
Geschrieben am 22.05.2017 um 21:16
|

Mitglied

Beiträge: 82
Registriert am: 13.11.13
|
@Systemweb
Wir wäre es denn wenn du in das nächste Update eine Song History mit reinpackst? Für beide SC1/SC2.... |
|
|