Shoutcast Streamanzeige
Verfasst: 26.03.2011 17:19
Hallo,
ich habe eine Shoutcaststreamanzeige nach meinen Bedürfnissen erweitert. Die kann ich nun als php-Datei in mein Template einfügen, und sie zeigt mir an ob und wer sendet.
Nun würde ich das ganze aber gern als Mod umstellen, damit ich die benötigten Eingaben direkt im Adminbereich machen kann. Ausserdem müss ich dann kein php mehr im Style freigeben. Aber mit der Moderstellung habe ich keinerlei Erfahrung. Darum wollte ich hier mal höflich anfragen, ob mir jemand dabei helfen kann. Eventuell haben ja auch andere Interesse an diesem Mod.
Hier mal der Code meiner php-Datei:
Wie ihr seht werden hiermit 2 Shoutcastserver abgefragt. Auf beiden wird das selbe gesendet, der eine halt nur mit Video.
Die Bilder der Modis werden aus der Galerie (die von nickvergessen) geholt. Eventuell kann man das ja auch anders oder besser lösen.
Ich dachte mir das so:
Adminbereich
Angaben der Serverdaten (IP und Ports)
Einfügen und ändern von Modis (eventuell mit Bildupload)
Angezeigte Texte erstellen/ändern
Ausgabe im Forum oder über Block bei Portalnutzung.
ich habe eine Shoutcaststreamanzeige nach meinen Bedürfnissen erweitert. Die kann ich nun als php-Datei in mein Template einfügen, und sie zeigt mir an ob und wer sendet.
Nun würde ich das ganze aber gern als Mod umstellen, damit ich die benötigten Eingaben direkt im Adminbereich machen kann. Ausserdem müss ich dann kein php mehr im Style freigeben. Aber mit der Moderstellung habe ich keinerlei Erfahrung. Darum wollte ich hier mal höflich anfragen, ob mir jemand dabei helfen kann. Eventuell haben ja auch andere Interesse an diesem Mod.
Hier mal der Code meiner php-Datei:
Code: Alles auswählen
<?php
## shoutcasthack by bikky on ##
## Erweitert by Fishtown ##
## Serverkonfiguration ##
## ------------------- ##
## $server = Server-IP ##
## $port = Port des Videostreams ##
## $port1 = Port des Audiostreams ##
$server = "xxx.xxx.xxx.xxx"; //hier die Server-IP eintragen
$port = 8000; //hier den Port fuer Server 1 eintragen
$port1 = 8001; //hier den Port fuer Server2 eintragen
## Hier nichts aendern ##
$fp = @fsockopen($server, $port, $errno, $errstr, 30);
$fp1 = @fsockopen($server, $port1, $errno, $errstr, 30);
## Abfrage ob Videostream Online ist ##
if ($fp) {
fputs($fp, "GET /7.html HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n");
while(!feof($fp))
$page .= fgets($fp, 1000);
fclose($fp);
$page = ereg_replace(".*<body>", "", $page);
$page = ereg_replace("</body>.*", ",", $page);
$numbers = explode(",", $page);
$shoutcast_currentlisteners = $numbers[0]; //variable ueber die aktuelle anzahl der zuhoerer
$connected = $numbers[1]; //variable zum anzeigen ob ein sender verbunden sind
if($connected == 1) {
$radio_status = 1; //variable zum anzeigen ob radio an ist oder nicht
$wordconnected = "yes"; //zusaetzliche variable die ich brauchte
}
else
$wordconnected = "no"; //zusaetzliche variable die ich brauchte
$shoutcast_peaklisteners = $numbers[2]; //variable die die anzahl der peaks angiebt
$shoutcast_maxlisteners = $numbers[3]; //variable ueber die maximal moegliche anzahl der zuhoerer
$shoutcast_reportedlisteners = $numbers[4]; //
$shoutcast_bitrate = $numbers[5]; //bitrate
$shoutcast_cursong = $numbers[6]; //aktueller song
$shoutcast_curbwidth = $shoutcast_bitrate * $shoutcast_currentlisteners; //gesamtbandbreite
$shoutcast_peakbwidth = $shoutcast_bitrate * $shoutcast_peaklisteners; //gesamtpeakbandbreite
}
## Abfrage ob Audiostream Online ist ##
if ($fp1) {
fputs($fp1, "GET /7.html HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n");
while(!feof($fp1))
$page .= fgets($fp1, 1000);
fclose($fp1);
$page = ereg_replace(".*<body>", "", $page);
$page = ereg_replace("</body>.*", ",", $page);
$numbers = explode(",", $page);
$shoutcast_currentlisteners1 = $numbers[0]; //variable ueber die aktuelle anzahl der zuhoerer
$connected = $numbers[1]; //variable zum anzeigen ob ein sender verbunden sind
if($connected == 1) {
$radio_status1 = 1; //variable zum anzeigen ob radio an ist oder nicht
$wordconnected1 = "yes"; //zusaetzliche variable die ich brauchte
$shoutcast_peaklisteners1 = $numbers[2]; //variable die die anzahl der peaks angiebt
$shoutcast_maxlisteners1 = $numbers[3]; //variable ueber die maximal moegliche anzahl der zuhoerer
}
else
$wordconnected1 = "no"; //zusaetzliche variable die ich brauchte
}
## Ab hier die Bilder der Modis anpassen ##
## ===================================== ##
## Jeder Modi eine Zeile. Folgende Daten anpassen: ##
## elseif(strpos($shoutcast_cursong,"MODINAME")!==false) $modipic = '<img src=http://www.URL.de/gallery/image.php?album_id=1&image_id=BILD-ID_im_Album></img>'; ##
## MODINAME = Der Name den der Modi uebertraegt ##
## BILD-ID_im_Album = Die ID des Modibildes in der Galerie. Bild MUSS im Album 'TEAM' sein. ##
if ($radio_status == 1) {
$rs1status = '<b><a href="http://xxx.xxx.xxx.xxx:8000/listen.pls" target="_blank"><img src="video.gif" align="middle"><font color="green"> Online</font> </img></a></b>';
$rs1statuspic = '<img src=http://www.URL.de/onlinepic.gif></img>';
$rs1song = $shoutcast_cursong;
$rs1listener = 'Zuhörer:' . $shoutcast_currentlisteners . "/" . $shoutcast_maxlisteners;
$rs1add = '<font color="black"><b>Telefon 0345 / 483 41 56 59<br />(Ortstarif/Mobil abweichend)</b></font>';
if(strpos($shoutcast_cursong,"Becksboy")!==false) $modipic = '<img src=http://www.URL.de/gallery/image.php?album_id=1&image_id=2></img>';
elseif(strpos($shoutcast_cursong,"MODINAME1")!==false) $modipic = '<img src=http://www.URL.de/gallery/image.php?album_id=1&image_id=3></img>';
elseif(strpos($shoutcast_cursong,"MODINAME2")!==false) $modipic = '<img src=http://www.URL.de/gallery/image.php?album_id=1&image_id=632></img>';
else {
## Dieses Bild wird angezeigt, wenn Modiname nicht erkannt wird oder Stream läuft. ##
$modipic = '<img src=http://www.URL.de/gallery/image.php?mode=thumbnail&album_id=1&image_id=610></img>';
}
}
## Ab hier nichts mehr aendern. ##
## Generierung der Ausgabe ##
else {
$rs1status = '<b><font color="red">Offline</font></b>';
$rs1song = 'Zur Zeit leider keine Sendung.';
$rs1listener = '';
$rs1statuspic = '<img src=http://www.URL.de/offlinepic.gif></img>';
$modipic = '';
$rs1add = '<font color="black"><b>Bitte den Sendeplan beachten</b></font>';
}
if ($radio_status1 == 1) {
$rs2status = '<b><a href="http://xxx.xxx.xxx.xxx:8001/listen.pls" target="_blank"><img src="video.gif" align="middle"><font color="green"> Online</font> </img></a></b>';
$rs2statuspic = '<img src=http://www.URL.de/onlinepic.gif></img>';
$rs2song = $shoutcast_cursong;
$rs2listener = 'Zuhörer:' . $shoutcast_currentlisteners1 . '/' . $shoutcast_maxlisteners1;
}
else {
$rs2status = '<b><font color="red">Offline</font></b>';
$rs2song = '';
$rs2listener = '';
$rs2statuspic = '<img src=http://www.URL.de/offlinepic.gif></img>';
}
$video = '<font color="black"><b>Videostream</font>';
$audio = '<font color="black"><b>Audiostream</font>';
## output on ##
echo '<TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0>';
echo '<TR VALIGN=TOP>';
echo '<TD WIDTH=21%>';
echo '<TABLE WIDTH=100% BORDER=0 CELLPADDING=4 CELLSPACING=0>';
echo '<TR>';
echo '<TD WIDHT=90px ROWSPAN=3 VALIGN=TOP>' .$rs1statuspic . '</TD>';
echo '<TD WIDTH=100% VALIGN=middle align=right>' . $video . '</TD>';
echo '</TR>';
echo '<TR>';
echo '<TD WIDTH=100% VALIGN=middle align=right>' .$rs1status . '</TD>';
echo '</TR>';
echo '<TR>';
echo '<TD WIDTH=100% HEIGHT=44 VALIGN=middle align=right><b><font color="black">' . $rs1listener . '</font></b></TD>';
echo '</TD>';
echo '</TR>';
echo '</TABLE>';
echo '</TD>';
echo '<TD WIDTH=14% align=center VALIGN=middle>' . $modipic . '</TD>';
echo '</TD>';
echo '<TD ROWSPAN=2 WIDTH=44%>';
echo '<b><font color="black"> Aktuell:<marquee> >>' . $rs1song . '<< </marquee></font></b><br /><br />' . $rs1add ;
echo '</TD>';
echo '<TD WIDTH=21%>';
echo '<TABLE WIDTH=100% BORDER=0 CELLPADDING=4 CELLSPACING=0>';
echo '<TR>';
echo '<TD WIDHT=90px ROWSPAN=3 VALIGN=middle>' .$rs2statuspic . '</TD>';
echo '<TD WIDTH=100% VALIGN=middle align=right>' . $audio . '</TD>';
echo '</TR>';
echo '<TR>';
echo '<TD WIDTH=100% VALIGN=TOP align=right>' .$rs2status . '</TD>';
echo '</TR>';
echo '<TR>';
echo '<TD WIDTH=100% HEIGHT=44 VALIGN=middle align=right><b><font color="black">' . $rs2listener . '</font></b></TD>';
echo '</TD>';
echo '</TR>';
echo '</TABLE>';
echo '</TD>';
echo '</TR>';
echo '</TABLE>';
## output off ##
## shoutcasthack by bikky off ##
## Erweitert by Fishtown ##
?
Die Bilder der Modis werden aus der Galerie (die von nickvergessen) geholt. Eventuell kann man das ja auch anders oder besser lösen.
Ich dachte mir das so:
Adminbereich
Angaben der Serverdaten (IP und Ports)
Einfügen und ändern von Modis (eventuell mit Bildupload)
Angezeigte Texte erstellen/ändern
Ausgabe im Forum oder über Block bei Portalnutzung.