Shoutcast 2 History
|
chrissi19121985 |
Geschrieben am 02. Mai 2017 12:42:25
|

|
Hab da ein Script um meine History abzufragen. Funktioniert soweit, nur das er mir statt die Uhrzeit einen Zeitstempel anzeigt.
Hier der 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. Mai 2017 08:24:54
|
Information: |
PHP Version: 7.4.x • MySQL Version: Nicht ausgewählt •  PHP-Fusion: IUP-FIX-PHP7 |
|
|
|
John Doe |
Geschrieben am 02. Mai 2017 12:46:40
|

|
Das auslesen ginge auch so:
<?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;
?> |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt |
|
|
|
Dat Tunes |
Geschrieben am 02. Mai 2017 13:21:13
|

|
Den Timestamp einfach umrechnen lassen mit showdate.
'.showdate("%d.%b.%y - %h:%m:%s", $timestamp10).'
Wenn es extern geladen wird ohne Fusion Funktionen
'.date("%d.%b.%y - %h:%m:%s", $timestamp10).'
Waschbären werden die Weltherrschaft übernehmen!
|
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt |
|
|
|
chrissi19121985 |
Geschrieben am 02. Mai 2017 13:23:13
|

|
An welche Stelle muss das denn im Code ? |
Information: |
PHP Version: 7.4.x • MySQL Version: Nicht ausgewählt •  PHP-Fusion: IUP-FIX-PHP7 |
|
|
|
Dat Tunes |
Geschrieben am 02. Mai 2017 13:27:25
|

|
Bei deinen Script dann so:
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.
Waschbären werden die Weltherrschaft übernehmen!
|
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt |
|
|
|
chrissi19121985 |
Geschrieben am 02. Mai 2017 13:33:05
|

|
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 chrissi19121985 am 02. Mai 2017 13:35:12
|
Information: |
PHP Version: 7.4.x • MySQL Version: Nicht ausgewählt •  PHP-Fusion: IUP-FIX-PHP7 |
|
|
|
Dat Tunes |
Geschrieben am 02. Mai 2017 13:42:15
|

|
Hänge mal die ganze Datei an, so kann man nichts machen.
Waschbären werden die Weltherrschaft übernehmen!
|
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt |
|
|
|
chrissi19121985 |
Geschrieben am 02. Mai 2017 13:43:35
|

|
Alles klar hier ist die Datei 
chrissi19121985 hat folgende Datei angehängt:
Du hast nicht die Berechtigung die Anhäge dieses Themas zu sehen.
|
Information: |
PHP Version: 7.4.x • MySQL Version: Nicht ausgewählt •  PHP-Fusion: IUP-FIX-PHP7 |
|
|
|
Dat Tunes |
Geschrieben am 02. Mai 2017 13:53:07
|

|
Nimm das mal unten
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>";
Waschbären werden die Weltherrschaft übernehmen!
|
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt |
|
|
|
chrissi19121985 |
Geschrieben am 02. Mai 2017 14:12:02
|

|
Mhhh es will nicht.... hab das showdate mal in date geändert weil es nix mit Fusion zu tun hat soll unabhängig laufen 
chrissi19121985 hat folgende Datei angehängt:
Du hast nicht die Berechtigung die Anhäge dieses Themas zu sehen.
Bearbeitet von chrissi19121985 am 03. Mai 2017 14:36:11
|
Information: |
PHP Version: 7.4.x • MySQL Version: Nicht ausgewählt •  PHP-Fusion: IUP-FIX-PHP7 |
|
|
|
Krelli |
Geschrieben am 09. Mai 2017 12:12:49
|

|
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.
Krelli hat folgende Datei angehängt:
Du hast nicht die Berechtigung die Anhäge dieses Themas zu sehen.
|
Information: |
PHP Version: 8.2.x • MySQL Version: Nicht ausgewählt •  PHP-Fusion: IPv9-DE-MOD |
|
|
|
chrissi19121985 |
Geschrieben am 10. Mai 2017 10:51:59
|

|
Ich habe meins jetzt auch fertiggestellt.
Hier der 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.
chrissi19121985 hat folgende Datei angehängt:
Du hast nicht die Berechtigung die Anhäge dieses Themas zu sehen.
Bearbeitet von Septron am 16. Mai 2017 08:23:25
|
Information: |
PHP Version: 7.4.x • MySQL Version: Nicht ausgewählt •  PHP-Fusion: IUP-FIX-PHP7 |
|
|
|
Snoopy01 |
Geschrieben am 15. Mai 2017 12:20:29
|

|
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
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 |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt |
|
|
|
chrissi19121985 |
Geschrieben am 15. Mai 2017 16:41:51
|

|
Mach die Streamhistory ins Root Verzeichnis deiner PHP Fusion Page und setz an deiner Stelle folgendes ein:
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. Mai 2017 08:24:04
|
Information: |
PHP Version: 7.4.x • MySQL Version: Nicht ausgewählt •  PHP-Fusion: IUP-FIX-PHP7 |
|
|
|
Krelli |
Geschrieben am 15. Mai 2017 20:10:46
|

|
Keine gute Idee, auf diese Weise wird die komplette Seite inkl. Header, Panels und Footer nochmal included. |
Information: |
PHP Version: 8.2.x • MySQL Version: Nicht ausgewählt •  PHP-Fusion: IPv9-DE-MOD |
|
|
|
John Doe |
Geschrieben am 16. Mai 2017 06:30:18
|

|
Man kann die streamhistory.php durchaus per include einbinden, allerdings sollte man dann in der Datei selbst die folgenden Codezeilen löschen oder auskommentieren:
require_once "maincore.php";
require_once THEMES."templates/header.php";
add_to_title(" - zuletzt gespielte Titel");
opentable("Liste der 10 zuletzt gespielten Titel");
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!
|
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt |
|
|
|
Krelli |
Geschrieben am 16. Mai 2017 08:20:00
|

|
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. |
Information: |
PHP Version: 8.2.x • MySQL Version: Nicht ausgewählt •  PHP-Fusion: IPv9-DE-MOD |
|
|
|
rotz |
Geschrieben am 18. Mai 2017 19:29:21
|

|
gebe dir ein Tip-----fange die file_get_contents per XMl ab |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt |
|
|
|
Krelli |
Geschrieben am 22. Mai 2017 12:30:33
|

|
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 Krelli am 22. Mai 2017 13:09:16
|
Information: |
PHP Version: 8.2.x • MySQL Version: Nicht ausgewählt •  PHP-Fusion: IPv9-DE-MOD |
|
|
|
chrissi19121985 |
Geschrieben am 22. Mai 2017 19:16:13
|

|
@Systemweb
Wir wäre es denn wenn du in das nächste Update eine Song History mit reinpackst? Für beide SC1/SC2.... |
Information: |
PHP Version: 7.4.x • MySQL Version: Nicht ausgewählt •  PHP-Fusion: IUP-FIX-PHP7 |
|
|