Thread Verfasser: ckoneman04
Thread ID: 1258
Thread Info
Es gibt 20 Beiträge zu diesem Thema, und es wurde 1038 Mal angesehen.  Ausserdem wurden Dateien angehängt.
ÔĽŅ

Thema ansehen

Wer ist hier? 1 Gäste
 Thema drucken
Shoutcast 2 History
ckoneman04
Hab da ein Script um meine History abzufragen. Funktioniert soweit, nur das er mir statt die Uhrzeit einen Zeitstempel anzeigt.

Hier der Code:
Download 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
 
http://www.radio-chaos-factory.de
Top
Harlekin
Das auslesen ginge auch so:
Download Code  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;
?>


 
http://harlekinpower.de
Top
Dat Tunes
Den Timestamp einfach umrechnen lassen mit showdate.

Download Code  Code
'.showdate("%d.%b.%y - %h:%m:%s", $timestamp10).'





Wenn es extern geladen wird ohne Fusion Funktionen
Download Code  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 !
 
http://www.phpfusion-deutschland.de
Top
ckoneman04
An welche Stelle muss das denn im Code ?
 
http://www.radio-chaos-factory.de
Top
Dat Tunes
Bei deinen Script dann so:

Download Code  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 !
 
http://www.phpfusion-deutschland.de
Top
ckoneman04
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:35: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
 
http://www.radio-chaos-factory.de
Top
Dat Tunes
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 !
 
http://www.phpfusion-deutschland.de
Top
ckoneman04
Alles klar hier ist die Datei Smile
ckoneman04 hat folgende Datei angehängt:
Du hast nicht die Berechtigung die Anhäge dieses Themas zu sehen.
 
http://www.radio-chaos-factory.de
Top
Dat Tunes
Nimm das mal unten

Download Code  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 !
 
http://www.phpfusion-deutschland.de
Top
ckoneman04
Mhhh es will nicht.... hab das showdate mal in date geändert weil es nix mit Fusion zu tun hat soll unabhängig laufen Smile
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
 
http://www.radio-chaos-factory.de
Top
Systemweb
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.
 
https://www.systemweb.de
Top
ckoneman04
Ich habe meins jetzt auch fertiggestellt.

Hier der Code:
Download 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'>&nbsp;Uhrzeit</font></div></b><br>";
echo "&nbsp;<font color='red'>Aktuell</font><br><br>";
echo "&nbsp;$abspielzeit1<br><br>";
echo "&nbsp;$abspielzeit2<br><br>";
echo "&nbsp;$abspielzeit3<br><br>";
echo "&nbsp;$abspielzeit4<br><br>";
echo "&nbsp;$abspielzeit5<br><br>";
echo "&nbsp;$abspielzeit6<br><br>";
echo "&nbsp;$abspielzeit7<br><br>";
echo "&nbsp;$abspielzeit8<br><br>";
echo "&nbsp;$abspielzeit9<br><br>";
echo "&nbsp;$abspielzeit10";
echo "</td>";

echo "<td width='700'>";
echo "<b><div style='background-color:white'><font color='black'>&nbsp;Titel</font></div></b><br>";
echo "&nbsp;$titel<br><br>";
echo "&nbsp;$titel1<br><br>";
echo "&nbsp;$titel2<br><br>";
echo "&nbsp;$titel3<br><br>";
echo "&nbsp;$titel4<br><br>";
echo "&nbsp;$titel5<br><br>";
echo "&nbsp;$titel6<br><br>";
echo "&nbsp;$titel7<br><br>";
echo "&nbsp;$titel8<br><br>";
echo "&nbsp;$titel9<br><br>";
echo "&nbsp;$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
 
http://www.radio-chaos-factory.de
Top
Snoopy01
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

Download Code  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
 
http://sunshine-fun-radio.de/
Top
ckoneman04
Mach die Streamhistory ins Root Verzeichnis deiner PHP Fusion Page und setz an deiner Stelle folgendes ein:

Download Code  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
 
http://www.radio-chaos-factory.de
Top
Systemweb
Keine gute Idee, auf diese Weise wird die komplette Seite inkl. Header, Panels und Footer nochmal included.
 
https://www.systemweb.de
Top
Layzee
Man kann die streamhistory.php durchaus per include einbinden, allerdings sollte man dann in der Datei selbst die folgenden Codezeilen löschen oder auskommentieren:

Download Code  Code
require_once "maincore.php";
require_once THEMES."templates/header.php";

add_to_title(" - zuletzt gespielte Titel");




Download Code  Code
opentable("Liste der 10 zuletzt gespielten Titel");




Download Code  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.
Genitiv ins Wasser, weil es dativ ist.
Vorsicht: Lesen gefährdet die Dummheit!
 
http://cyber-radio.de
Top
Systemweb
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.
 
https://www.systemweb.de
Top
rotz
gebe dir ein Tip-----fange die file_get_contents per XMl ab
 
http://keine.de
Top
Systemweb
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
 
https://www.systemweb.de
Top
ckoneman04
@Systemweb

Wir w√§re es denn wenn du in das n√§chste Update eine Song History mit reinpackst? F√ľr beide SC1/SC2....
 
http://www.radio-chaos-factory.de
Top



Springe ins Forum: