Aktuelle Titel- und Moderator-Anzeige

Status
Für weitere Antworten geschlossen.

4ugmike

Benutzer
Hallo,

ja ich habe die Suche verwendet, aber nichts passendes gefunden...

ich bin auf der Suche nach einem Script, welches den aktuellen Titel und INterpret ausliest.

Ja, da gibts genug, nur habe ich damit ein Problem...

Wir senden einen RDS mit und dieser sollte nicht wiedergegeben werden. Ich weiß auch dass das möglich ist, die Frage ist nur wie.. bzw wie man das programiert...

Sollte so aussehen:

Du hörst gerade: ....

Sollte aber, wenn als Titel irgendwas voreingestelltes drin steht das alte nochmal wiedergeben.

Log sieht so aus:

DJ Klubbingman - Love Train
Hallo und Willkommen bei Radio ...
Gerade on Air ist der Mike
aus dem Studio ...
mit der Sendung ...
Hallo und Willkommen bei Radio ...
Gerade on Air ist der Mike
aus dem Studio ...
mit der Sendung ...Hallo und Willkommen bei Radio ...
Gerade on Air ist der Mike
aus dem Studio ...
mit der Sendung ...
Heino - Blau Blau Blüht der Enzian
Hallo und Willkommen bei Radio ...
Gerade on Air ist der Mike
aus dem Studio ...
mit der Sendung ...Hallo und Willkommen bei Radio ...
Gerade on Air ist der Mike
aus dem Studio ...
mit der Sendung ...


usw...

Ich hoffe Ihr könnt mir helfen...
 
AW: Rollierende Titel- und Moderator-Anzeige

Wie kommt Ihr eigentlich immer darauf, daß alle Forenbenutzer über Kristallkugeln verfügen, mit denen sie die Astralkörper Eurer Systemlandschaften magisch erkennen können, um ihnen ihre innersten Geheimnisse zu entlocken...?

Aber erstmal Schluß mit der Esoterik und willkommen bei den radioforen.de. Helfen werden wir sicherlich gerne, aber es wäre wirklich sinnvoll, wenn Ihr Euer System etwas näher beschreiben könntet:

- Welche Software schreibt das Log?
- Welche Software liest das Log um damit das RDS zu füttern?
- Wo soll dieser "RDS" *nicht* wiedergegeben werden? Auf der Homepage?

Ich würde jetzt *vermuten*, daß Eure Sendesoftware auf die eine oder andere Weise ein Log erzeugt, wie Du es in Deinem Beitrag beschrieben hast. Eine weitere Software liest dieses aus und ändert bei jeder neuen Zeile im Log die Anzeige des RDS auf den Inhalt dieser zuletzt hinzugefügten Zeile. Nun wollt Ihr diese Daten auch auf Eurer HP anzeigen lassen, aber *nur* den Titel und nicht die sonstigen Zeilen, die die Software ins Log schreibt - habe ich das richtig verstanden?

LG

McCavity
 
AW: Rollierende Titel- und Moderator-Anzeige

Aha, jetzt ist er hier angekommen.
Die Kristallkugel sagt:
Solange bei Radio X OGG gestreamt wird, gibt es für das Problem keine Lösung.
Absolut keine.

Die einzige Lösung, die es gibt heißt:

  1. auf aktuellen Icecast umstellen und diesen Shoutcast-kompatibel configgen
    neue Syntax in der Config beachten
  2. Streamsoftware entsprechend auf MP3 und Shoutcast umstellen
  3. nicht mehr
    Code:
    $combine$
    als Taggerquelle nutzen sondern eine
    ID3-Variable, welche in euren Titeln NICHT belegt ist (z.B.
    Code:
    $album$
    Es braucht unbedingt eine solche, sonst geht es auch nicht. Man muss also
    aus ALLEN Titeln per MP3Tag aus ID3v1 UND 2 wenigstens eine Variable freiräumen.
  4. gibt es bei dea ein RDS-Script, welches die Rotation bei Playerwechsel
    einstellt und die Titel direkt aus dem wirklich laufenden Player holt und nicht auf das automatische Update angewiesen ist.
    Macht aber erst Sinn, wenn 1 - 3 vollständig geklärt sind.
 
AW: Aktuelle Titel- und Moderator-Anzeige

Ah hier treibst du dich nun also rum Dea... :D
schade dass du nicht mehr gekommen bist und uns net wenigstens Bescheid gegeben hast...

Nun zum Problem...

Der Log stammt so oder so ähnlich von Shoutcast.
Sendesoftware ist Sam 2 - 4
RDS ist ein Pal script im sam...

Mal zur erläuterung für alle die unser System nicht kennen:

Sam -> ogg -> Icecast -> Transcoder -> Shoutcast

Also geht das nicht einfach dass man din script nimmt und die Shoutcast Logs auslesen lässt... und dem dann am Anfang sagt, wenn XY drin steht dass er das net ausgibt? Also dem script vorher Sätze vorgibt die es nicht wiedergeben soll..

Bei nem anderen Radio, welches es nicht mehr gibt hatten wir so was ähnliches.. z.b. bei Jingles die fingen alle mit [Radioname] an und wurden net wiedergegeben auf der HP...
 
AW: Aktuelle Titel- und Moderator-Anzeige

Also geht das nicht einfach dass man din script nimmt und die Shoutcast Logs auslesen lässt... und dem dann am Anfang sagt, wenn XY drin steht dass er das net ausgibt? Also dem script vorher Sätze vorgibt die es nicht wiedergeben soll..

Sicher geht das. Und zwar mit fast jeder beliebigen Programmiersprache.
Du liest die 7.html des Shoutcast aus, durchsuchst den String nach einem bestimmten Wort (in Perl und PHP z.B. mit strpos()) und lässt das Script dahingehend entscheiden ob es den Titel ausgibt oder z.B. einen Alterantivtext.
 
AW: Aktuelle Titel- und Moderator-Anzeige

Über irgendwelche speziell angefertigten Scripte auf Servern kann ich nichts
sagen, weil: Das war nie mein Gebiet.
Ich kann nur empfehlen, von OGG Abstand zu nehmen, wenn Traffic ohnehin
kein Problem ist, den neuen Icecast zu verwenden und dann alles Shoutcast-
kompatibel laufen zu lassen.
Damit fällt der zusätzliche Shoutcast-Server komplett weg und somit auch
sämtliche Streamripper.
 
AW: Aktuelle Titel- und Moderator-Anzeige

ok...

also es geht jetzt ist nur noch die Frage wie.. o_O und ich denke das ist das Problem denn ich hab davon keine Ahnung.

Hale ein script grad am Laufen, das alles wiedergibt, nur wo füge ich was ein dass bestimmte dinge nicht wiedergegeben werden??

PHP:
<html>

<head>

<body bgcolor="e9e6f4">
	<font color="navyblue"><?php
// Shoutcast Server Stats
// Parses shoutcasts xml to make an effective stats thing for any website
// Coded by Daniel Brown. Edited by Nick Coates [SharpeHosting.com] [SharpeNews] KEEP THIS INTACT!!!
// Please refer to the readme file for use.
include('config_radio.php');  //you may edit this path to fit your server environment otherwise leave it alone
$scfp = fsockopen("$scip", $scport, &$errno, &$errstr, 10);
 if(!$scfp) {
  $scsuccs=1;
echo''.$scdef.' Habbo Hotel Radio Is Currently Offline';
 }
if($scsuccs!=1){
 fputs($scfp,"GET /admin.cgi?pass=$scpass&mode=viewxml HTTP/1.0\r\nUser-Agent: SHOUTcast Song Status (Mozilla Compatible)\r\n\r\n");
 while(!feof($scfp)) {
  $page .= fgets($scfp, 1000);
 }
######################################################################################################################
/////////////////////////part 1 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//define  xml elements
 $loop = array("STREAMSTATUS", "BITRATE", "SERVERTITLE", "CURRENTLISTENERS");
 $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 || $loop[$y]==SERVERTITLE)
   $$scphp = urldecode($$scphp);

// uncomment the next line to see all variables
//echo'$'.$scphp.' = '.$$scphp.'<br>';
  $y++;
 }
//end intro xml elements
######################################################################################################################
######################################################################################################################
/////////////////////////part 2\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//get song info and history
 $pageed = ereg_replace(".*<SONGHISTORY>", "", $page);
 $pageed = ereg_replace("<SONGHISTORY>.*", "", $pageed);
 $songatime = explode("<SONG>", $pageed);
 $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]);
  $dj[$t] = ereg_replace(".*<SERVERTITLE>", "", $page);
  $dj[$t] = ereg_replace("</SERVERTITLE>.*", "", $pageed);
$r++;
 }
//end song info

fclose($scfp);
}

//display stats
if($streamstatus == "1"){
//you may edit the html below, make sure to keep variable intact
echo'
<html>

<head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<META HTTP-EQUIV="REFRESH" CONTENT="30">
<link rel=stylesheet href="" type="text/css">
<title>'.$scdef.'</title>
</head>

<body text="" bgcolor="e9e6f4">




<p>

<font color="black"><font face="verdana" size="1"><b>DJ Name:</b>&nbsp;'.$servertitle.'</font></p>
<font color="black"><font face="verdana" size="1"><b>Listeners:</b>&nbsp;'.$currentlisteners.' / 200</font></p>

<font face="verdana" size="1" color="black"><b>

    Current Song:</b> '.$song[0].'</font></p>
    <b>
 

	<font face="verdana" size="1">
    Last Song:</font></b>
<font color="black"><font face="verdana" size="1">
 '.$song[1].'
</font>
</body>

</html>';
}
if($streamstatus == "0")
{
//you may edit the html below, make sure to keep variable intact
echo'
<html>

<head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<META HTTP-EQUIV="REFRESH" CONTENT="30;URL=radio_stats.php">
<link rel=stylesheet href="" type="text/css">
<title>Habbo Hotel Radio Is Curently Offline</title>
</head>

<body text="" bgcolor=""><STYLE type=text/css>
UNKNOWN {
	FONT-SIZE: 10px; COLOR: #black; FONT-FAMILY: verdana
}
BODY {
	BACKGROUND-COLOR: e9e6f4
}
A:link {
	COLOR: ; TEXT-DECORATION: none
}
A:visited {
	COLOR: #363636; TEXT-DECORATION: none
}
A:hover {
	COLOR: #363636; TEXT-DECORATION: underline
}
A:active {
	TEXT-DECORATION: none
}
BODY {
	FONT-SIZE: 10px; COLOR: e9e6f4; FONT-FAMILY: verdana
}
TD {
	FONT-SIZE: 10px; COLOR: e9e6f4; FONT-FAMILY: verdana
}
TH {
	FONT-SIZE: 10px; COLOR: e9e6f4; FONT-FAMILY: verdana
}
.style5 {font-size: 14px}
</STYLE>
<div><center><img src="offline.gif"></img></center></div>
</body>

</html>';
}
?></font>
</body>
 
AW: Aktuelle Titel- und Moderator-Anzeige

PHP:
Current Song:</b> '.$song[0].'</font></p>

ändern in

PHP:
Current Song:</b> ';

if(strpos('suchstring', $song[0]) === false)
     echo $song[0];
else
     echo "Titel wird nicht angezeigt"

echo '</font></p>

Ich habs nicht getestet sondern aus dem Gedächtnis geschrieben. Es sollte aber klappen.
Und so nebenbei, der verwendete HTML-Code ist veraltet, nicht valide und ein Sauhaufen ;)

"suchstring" ist natürlich mit dem Text zu ersetzen, der erkannt werden soll in den Titeln.
 
AW: Aktuelle Titel- und Moderator-Anzeige

Dass es Hörer gibt, für die der Traffic (und die Bandbreite) ein Problem sein kann, vergisst du?

Ich weiß nur, dass es keinen Sinn macht, OGG mit niedriger Bitrate upzustreamen
und daraus alle möglichen anderen Streams zu errechnen, u.a. auch einen 128er MP3.
OGG ist einfach widerlich.
In dem konkreten Fall handelt es sich aber um Hintergrundwissen, dass ich aus
gutem Grund habe und worauf sich meine Aussage bezog.
 
AW: Aktuelle Titel- und Moderator-Anzeige

d.h. ich ersetze " suchstring " durch das was er suchen soll??

OK habe ich gemacht.. muss ich testen..


Wenn ich das aber richtig lese, dann schreibt der ja wenn so ein Song gefunden wird net weiterhin den alten SOng hin sondern " Dieser Titel wird nicht angezeigt " oder?

na ja ich teste mal..
 
AW: Aktuelle Titel- und Moderator-Anzeige

Wenn der OGG eine niedrige Bitrate hat, geb ich dir natürlich Recht. Wenn der später in MP3 gewandelt wird, sollte die Bandbreite schon um einiges höher sein als der spätere MP3-Stream hat.

Wenn ich das aber richtig lese, dann schreibt der ja wenn so ein Song gefunden wird net weiterhin den alten SOng hin sondern " Dieser Titel wird nicht angezeigt " oder?

Genau das passiert dann. Im Suchstring wird Gross- und Kleinschreibung beachtet. Wenn du dieses ignoeiren willst, musst du "strpos" durch "stripos" ersetzen.
 
AW: Aktuelle Titel- und Moderator-Anzeige

hab ich ändert sich nix..

Code wie er jetzt aussieht:

PHP:
<html>

<head>

<body bgcolor="e9e6f4">
	<font color="navyblue"><?php
error_reporting(E_ALL);  
// Shoutcast Server Stats
// Parses shoutcasts xml to make an effective stats thing for any website
// Coded by Daniel Brown. Edited by Nick Coates [SharpeHosting.com] [SharpeNews] KEEP THIS INTACT!!!
// Please refer to the readme file for use.
include('config_radio.php');  //you may edit this path to fit your server environment otherwise leave it alone
$scfp = fsockopen("$scip", $scport, &$errno, &$errstr, 10);
 if(!$scfp) {
  $scsuccs=1;
echo''.$scdef.' Habbo Hotel Radio Is Currently Offline';
 }
if($scsuccs!=1){
 fputs($scfp,"GET /admin.cgi?pass=$scpass&mode=viewxml HTTP/1.0\r\nUser-Agent: SHOUTcast Song Status (Mozilla Compatible)\r\n\r\n");
 while(!feof($scfp)) {
  $page .= fgets($scfp, 1000);
 }
######################################################################################################################
/////////////////////////part 1 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//define  xml elements
 $loop = array("STREAMSTATUS", "BITRATE", "SERVERTITLE", "CURRENTLISTENERS");
 $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 || $loop[$y]==SERVERTITLE)
   $$scphp = urldecode($$scphp);

// uncomment the next line to see all variables
//echo'$'.$scphp.' = '.$$scphp.'<br>';
  $y++;
 }
//end intro xml elements
######################################################################################################################
######################################################################################################################
/////////////////////////part 2\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//get song info and history
 $pageed = ereg_replace(".*<SONGHISTORY>", "", $page);
 $pageed = ereg_replace("<SONGHISTORY>.*", "", $pageed);
 $songatime = explode("<SONG>", $pageed);
 $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]);
  $dj[$t] = ereg_replace(".*<SERVERTITLE>", "", $page);
  $dj[$t] = ereg_replace("</SERVERTITLE>.*", "", $pageed);
$r++;
 }
//end song info

fclose($scfp);
}

//display stats
if($streamstatus == "1"){
//you may edit the html below, make sure to keep variable intact
echo'
<html>

<head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<META HTTP-EQUIV="REFRESH" CONTENT="30">
<link rel=stylesheet href="" type="text/css">
<title>'.$scdef.'</title>
</head>

<body text="" bgcolor="e9e6f4">




<p>

<font color="black"><font face="verdana" size="1"><b>DJ Name:</b>&nbsp;'.$servertitle.'</font></p>
<font color="black"><font face="verdana" size="1"><b>Listeners:</b>&nbsp;'.$currentlisteners.' / 200</font></p>

<font face="verdana" size="1" color="black"><b>

    Current Song:</b> ';

if(stripos('WSR', $song[0]) === false)
     echo $song[0];
else
     echo "Titel wird nicht angezeigt"

echo '</font></p>
    <b>
 

	<font face="verdana" size="1">
    Last Song:</font></b>
<font color="black"><font face="verdana" size="1">
 '.$song[1].'
</font>
</body>

</html>';
}
if($streamstatus == "0")
{
//you may edit the html below, make sure to keep variable intact
echo'
<html>

<head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<META HTTP-EQUIV="REFRESH" CONTENT="30;URL=radio_stats.php">
<link rel=stylesheet href="" type="text/css">
<title>Habbo Hotel Radio Is Curently Offline</title>
</head>

<body text="" bgcolor=""><STYLE type=text/css>
UNKNOWN {
	FONT-SIZE: 10px; COLOR: #black; FONT-FAMILY: verdana
}
BODY {
	BACKGROUND-COLOR: e9e6f4
}
A:link {
	COLOR: ; TEXT-DECORATION: none
}
A:visited {
	COLOR: #363636; TEXT-DECORATION: none
}
A:hover {
	COLOR: #363636; TEXT-DECORATION: underline
}
A:active {
	TEXT-DECORATION: none
}
BODY {
	FONT-SIZE: 10px; COLOR: e9e6f4; FONT-FAMILY: verdana
}
TD {
	FONT-SIZE: 10px; COLOR: e9e6f4; FONT-FAMILY: verdana
}
TH {
	FONT-SIZE: 10px; COLOR: e9e6f4; FONT-FAMILY: verdana
}
.style5 {font-size: 14px}
</STYLE>
<div><center><img src="offline.gif"></img></center></div>
</body>

</html>';
}
?></font>
</body>
 
AW: Aktuelle Titel- und Moderator-Anzeige

Dann kann ich per Ferndiagnose leider nicht mehr machen.
Die einzige Vermutung ist noch, due bearbeitest das alles als Root und dadurch stimmen die Dateirechte nicht. Sowas würde im error.log des Apachen stehen.

Wenn E_ALL keine Fehlermeldung bringt, wird das PHP schon gar nicht ausgeführt.
 
AW: Aktuelle Titel- und Moderator-Anzeige

Ich habs nicht getestet, aber was ich so sehe, stimmt es.
Wie gesagt, wenn keine Fehlermeldung kommt, wird das PHP erst gar nicht ausgeführt. Was sagt denn das error.log?
 
AW: Aktuelle Titel- und Moderator-Anzeige

Da ich keine Ahnung habe, welches Beitrebssystem du nutzt, weiss ich das auch nicht.
Da dein Server aber sicher von jemanden administriert wird, der Ahnung hat, solltest du diese Person fragen.
 
AW: Aktuelle Titel- und Moderator-Anzeige

mh dann warte ich ja noch jahre..

Betriebssystem: openSUSE 10.2 inkl. Plesk 8.3
 
AW: Aktuelle Titel- und Moderator-Anzeige

Jetzt habe ich den gefunden...

[Tue Sep 23 09:56:28 2008] [error] [client 208.36.144.7] File does not exist: /srv/www/vhosts/default/htdocs/robots.txt
[Tue Sep 23 10:47:47 2008] [error] [client 74.6.22.162] File does not exist: /srv/www/vhosts/default/htdocs/robots.txt
[Tue Sep 23 10:47:50 2008] [error] [client 72.30.215.104] File does not exist: /srv/www/vhosts/default/htdocs/SlurpConfirm404
[Tue Sep 23 11:37:14 2008] [error] [client 38.99.13.125] File does not exist: /srv/www/vhosts/default/htdocs/robots.txt
[Tue Sep 23 11:56:16 2008] [error] [client 66.249.72.37] File does not exist: /srv/www/vhosts/default/htdocs/robots.txt
[Tue Sep 23 11:56:16 2008] [error] [client 66.249.72.37] script '/srv/www/vhosts/default/htdocs/page.php' not found or unable to stat
[Tue Sep 23 13:01:46 2008] [error] [client 83.170.97.202] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)
[Tue Sep 23 13:09:29 2008] [error] [client 83.170.97.202] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)
[Tue Sep 23 13:55:26 2008] [error] [client 87.255.1.69] script '/srv/www/vhosts/default/htdocs/index.php' not found or unable to stat, referer: http://forum.radio-wsr.net/index.php
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben