Soziale Netzwerke

twitter_logo youtube_logo google_plus

Thread ansehen

\n\n
 
DJ Bild wird im Radiostatus nicht Angezeigt
Skugga
Geschrieben am 06.03.2016 20:50:52


Posts: 10
Registriert seit: 09.12.15

Hallo wir senden über Shoutcast 1...
Daten über AIM im Server eingestellt und senden mit Mairlist.
Auto DJ läuft mit Separatem Port und PW als die Modis.
Die Übergabe klappt super, nach dem Songtitel kommt der Modi Name aber obwohl wir
auch den Sendeplan nutzen steht bei On Air immer Auto DJ und das selbige Bild.
habe die Code hier im Forum gefunden und eingepflegt, dennoch wird dadurch das
Problem nicht behoben.
Gibt es da weitere Ansätze zur Lösung?
Haben unseren eigenen Root Server mit vollen Rechten über Server 4 you ist nen D. Server.
Nutzen Php fusion 7.02.07 mittelpannel mit Theme Mitte 3

Danke im vorraus.

mfg euer Skugga
 
Ragdoll
Geschrieben am 07.03.2016 01:01:06
User Avatar

Posts: 2212
Registriert seit: 02.07.10

Hallo, bitte häng doch einmal deine _class.php datei an. Smile ggf. finde ich ja den fehler. Smile
Editiert von Ragdoll am 11.03.2016 08:41:53
www.granade.eu/images/linkus/gross4.png
 
Skugga
Geschrieben am 09.03.2016 18:32:01


Posts: 10
Registriert seit: 09.12.15

Hallo Danke für die Schnelle Antwort.
Klar alles brav gekauft bin Web grafiker und finde Datenklau unter aller sau.

_class.php code ist volgender:

Code
<?php
/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright (c) 2002 - 2011 Nick Jones
| Nur für Mitglieder sichtbar!
+--------------------------------------------------------+
| Title: Gr_Radiostatus v2 for PHP-Fusion 7
| Author: Ralf Thieme
| Webseite: Nur für Mitglieder sichtbar!
+--------------------------------------------------------+
| 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 Nur für Mitglieder sichtbar! Removal of this
| copyright header is strictly prohibited without
| written permission from the original author(s).
+--------------------------------------------------------*/
if (!defined('IN_FUSION')) { die('Access Denied'); }

class SHOUTcast {
   var $SHOUTcastData;
   var $error;
   
   function GetStatus($arr=array()) {
      if(empty($arr)){return(0);}
      $fp = @fsockopen($arr['rs_ip'],$arr['rs_port'],$errno,$errstr,1);
      if (!$fp) {
         $this->error = "$errstr ($errno)";
         return(0);
      } else {
         fputs($fp, "GET /admin.cgi?pass=".$arr['rs_pw'].($arr['rs_server_typ'] == 1 ? "&sid=".$arr['rs_server_id'] : "")."&mode=viewxml HTTP/1.1\r\n");
         fputs($fp, "User-Agent: Mozilla\r\n\r\n");
         stream_set_blocking($fp, false);
         socket_set_timeout($fp, 2);
         $status = socket_get_status($fp);
         while (!feof($fp) AND !$status['timed_out']) {
            $this->SHOUTcastData .= fgets($fp, 512);
         }
         fclose($fp);
         if (isset($this->SHOUTcastData) AND stristr($this->SHOUTcastData, "HTTP/1.0 200 OK") == true) {
            $this->SHOUTcastData = trim(substr($this->SHOUTcastData, 42));
            return(1);
         } else {
            $this->error = "Bad login";
            return(0);
         }
      }
   }
   
   function GetCurrentListeners() {
      return $this->check_input($this->check_preg('CURRENTLISTENERS', $this->SHOUTcastData));
   }

   function GetPeakListeners() {
      return $this->check_input($this->check_preg('PEAKLISTENERS', $this->SHOUTcastData));
   }

   function GetMaxListeners() {
      return $this->check_input($this->check_preg('MAXLISTENERS', $this->SHOUTcastData));
   }

   function GetServerGenre() {
      return $this->check_input($this->check_preg('SERVERGENRE', $this->SHOUTcastData));
   }
   
   function GetServerURL() {
      return $this->check_input($this->check_preg('SERVERURL', $this->SHOUTcastData));
   }
   
   function GetServerTitle() {
      return $this->check_input($this->check_preg('SERVERTITLE', $this->SHOUTcastData));
   }
   
   function GetCurrentSongTitle() {
       $string  = $this->check_input($this->check_preg('SONGTITLE', $this->SHOUTcastData));
       $pattern = '#[|]#';

       if(preg_match($pattern, $string)) {
       // Treffer
       $string = $this->check_input($this->check_preg('SONGTITLE', $this->SHOUTcastData));
       $stringposition = strpos($string, "|");
       $new_string = substr($string, 0, $stringposition);
       return $new_string;
       }else{
       return $this->check_input($this->check_preg('SONGTITLE', $this->SHOUTcastData), true);
       }
    }
   
   
   function GetIRC() {
        $song_string = $this->check_input($this->check_preg('SONGTITLE', $this->SHOUTcastData));
        preg_match('/(\|) ([a-zA-Z0-9._ -]{0,})/i', $song_string, $regs);
        $moderator = $regs[0];
        $moderator = str_replace("| ", "", $moderator);
        $moderator = trim($moderator);
        return $moderator;
    }

   
    function GetAIM() {
        $song_string = $this->check_input($this->check_preg('SONGTITLE', $this->SHOUTcastData));
        preg_match('/(\|) ([a-zA-Z0-9._ -]{0,})/i', $song_string, $regs);
        $moderator = $regs[0];
        $moderator = str_replace("| ", "", $moderator);
        $moderator = trim($moderator);
        return $moderator;
    }

   
   function GetICQ() {
        $song_string = $this->check_input($this->check_preg('SONGTITLE', $this->SHOUTcastData));
        preg_match('/(\|) ([a-zA-Z0-9._ -]{0,})/i', $song_string, $regs);
        $moderator = $regs[0];
        $moderator = str_replace("| ", "", $moderator);
        $moderator = trim($moderator);
        return $moderator;
    }

   function GetStreamStatus() {
      return $this->check_input($this->check_preg('STREAMSTATUS', $this->SHOUTcastData));
   }
   
   function GetBitRate() {
      return $this->check_input($this->check_preg('BITRATE', $this->SHOUTcastData));
   }
   
   function GetContent() {
      return $this->check_input($this->check_preg('CONTENT', $this->SHOUTcastData));
   }
   
   function GetSongHistory() {
      $arrhistory = array();
      $song_source = $this->check_preg_all('SONG');
      if (is_array($song_source)) {
         for($i=1;$i < sizeof($song_source);$i++) {
            $arrhistory[$i-1] = array(
               'playedat' => $this->check_input($this->check_preg('PLAYEDAT', $song_source[$i])),
               'title' => $this->check_input($this->check_preg('TITLE', $song_source[$i]), true)
            );
         }
      }
      return $arrhistory;
   }
   
   function GetListeners() {
      $arrlisteners = array();
      $listener_source = $this->check_preg_all('LISTENER');
      if (is_array($listener_source)) {
         for($i=0;$i < sizeof($listener_source);$i++) {
            $arrlisteners[$i] = array(
               'hostname' => $this->check_input($this->check_preg('HOSTNAME', $listener_source[$i])),
               'useragent' =>  $this->check_input($this->check_preg('USERAGENT', $listener_source[$i])),
               'underruns' => $this->check_input($this->check_preg('UNDERRUNS', $listener_source[$i])),
               'connecttime' => $this->check_input($this->check_preg('CONNECTTIME', $listener_source[$i])),
               'pointer' => $this->check_input($this->check_preg('POINTER', $listener_source[$i])),
               'uid' => $this->check_input($this->check_preg('UID', $listener_source[$i]))
            );
         }
      }
      return $arrlisteners;
   }
   
   function MakeCache($user_typ,$cache_art) {
      $res  = '<?php'."\n";
      $res .= 'if (!defined(\'IN_FUSION\')) { die(\'Access Denied\'); }'."\n";
      $res .= '$cache = array();'."\n";
      if ($this->GetStreamStatus()) {
         if ($user_typ == 1) {
            $server_name = $this->GetAIM();
         } elseif ($user_typ == 2) {
            $server_name = $this->GetICQ();
         } elseif ($user_typ == 3) {
            $server_name = $this->GetIRC();
         } elseif ($user_typ == 4) {
            $server_name = $this->GetServerTitle();
         } elseif ($user_typ == 5) {
            $server_name = $this->GetServerGenre();
         } else {
            $server_name = $this->GetAIM();
         }
         $result_user = dbquery("SELECT user_id, user_name, user_avatar FROM ".DB_USERS." WHERE user_name='".stripinput($server_name)."'");
         if (dbrows($result_user)) {
            $data_user = dbarray($result_user);
            $res .= '$cache[\'mod_ckeck\'] = true;'."\n";
            $res .= '$cache[\'mod_id\'] = \''.$data_user['user_id'].'\';'."\n";
            if ($cache_art) {
               $res .= '$cache[\'mod\'] = \'<a href="'.RADIOSTATUS_SELF.BASEDIR.'profile.php?lookup='.$data_user['user_id'].'">'.trimlink($data_user['user_name'], 30).'</a>\';'."\n";
               if ($data_user['user_avatar'] AND file_exists(IMAGES.'avatars/'.$data_user['user_avatar'])) {
                  $res .= '$cache[\'mod_pic\'] = \''.RADIOSTATUS_SELF.IMAGES.'avatars/'.$data_user['user_avatar'].'\';'."\n";
               } else {
                  $res .= '$cache[\'mod_pic\'] = \''.RADIOSTATUS_SELF.'images/nopic.gif\';'."\n";
               }
            } else {
               $res .= '$cache[\'mod\'] = \''.trimlink($data_user['user_name'], 30).'\';'."\n";
               if ($data_user['user_avatar'] AND file_exists(IMAGES.'avatars/'.$data_user['user_avatar'])) {
                  $res .= '$cache[\'mod_pic\'] = \''.RADIOSTATUS_SELF.IMAGES.'avatars/'.$data_user['user_avatar'].'\';'."\n";
               } else {
                  $res .= '$cache[\'mod_pic\'] = \''.RADIOSTATUS_SELF.'images/nopic.gif\';'."\n";
               }
            }
            @mysql_free_result($result_user);
         } else {
            $res .= '$cache[\'mod_ckeck\'] = false;'."\n";
            $res .= '$cache[\'mod\'] = \'Auto DJ\';'."\n";
            $res .= '$cache[\'mod_id\'] = \'0\';'."\n";
            if ($cache_art) {
               $res .= '$cache[\'mod_pic\'] = \''.RADIOSTATUS_SELF.'images/autodj.gif\';'."\n";
            } else {
               $res .= '$cache[\'mod_pic\'] = \''.RADIOSTATUS_SELF.'images/autodj.gif\';'."\n";
            }
         }
         $res .= '$cache[\'song\'] = \''.(trim($this->GetCurrentSongTitle()) != '' ? trim($this->GetCurrentSongTitle()) : 'N/A').'\';'."\n";
         $res .= '$cache[\'aim\'] = \''.$this->GetAIM().'\';'."\n";
         $res .= '$cache[\'icq\'] = \''.$this->GetICQ().'\';'."\n";
         $res .= '$cache[\'irc\'] = \''.$this->GetIRC().'\';'."\n";
         $res .= '$cache[\'server_title\'] = \''.$this->GetServerTitle().'\';'."\n";
         $res .= '$cache[\'genre\'] = \''.$this->GetServerGenre().'\';'."\n";
         if ($cache_art) {
            $res .= '$cache[\'listner\'] = \''.$this->GetCurrentlisteners().'\';'."\n";
            $res .= '$cache[\'listner_max\'] = \''.$this->GetMaxListeners().'\';'."\n";
            $res .= '$cache[\'listner_peak\'] = \''.$this->GetPeakListeners().'\';'."\n";
            $res .= '$cache[\'bitrate\'] = \''.$this->GetBitrate().'\';'."\n";
            $res .= '$cache[\'listners\'] = array();'."\n";
            $listeners = $this->GetListeners();
            if (is_array($listeners)) {
               for($i=0;$i < sizeof($listeners);$i++) {
                  $res .= '$cache[\'listners\'][] = array(\'hostname\' => \''.$listeners[$i]['hostname'].'\', \'useragent\' => \''.$listeners[$i]['useragent'].'\', \'underruns\' => \''.$listeners[$i]['underruns'].'\', \'connecttime\' => \''.$listeners[$i]['connecttime'].'\', \'pointer\' => \''.$listeners[$i]['pointer'].'\', \'uid\' => \''.$listeners[$i]['uid'].'\');'."\n";
               }
            }
            $res .= '$cache[\'history\'] = array();'."\n";
            $history = $this->GetSongHistory();
            if (is_array($history)) {
               for($i=0;$i < sizeof($history);$i++) {
                  $res .= '$cache[\'history\'][] = array(\'playedat\' => \''.$history[$i]['playedat'].'\', \'title\' => \''.$history[$i]['title'].'\');'."\n";
               }
            }
            if (preg_match("/audio/i", $this->GetContent())) {
               $res .= '$cache[\'player\'] = \'0\';'."\n";
            } else {
               $res .= '$cache[\'player\'] = \'1\';'."\n";
            }
            $res .= '$cache[\'music\'] = \''.$this->GetContent().'\';'."\n";
         }
      }
      $res .= '$cache[\'status\'] = \''.$this->GetStreamStatus().'\';'."\n";
      $res .= '$cache[\'error\'] = \''.$this->GetError().'\';'."\n";
      $res .= '?>';
      return $res;
   }
   
   function check_preg($name, $source) {
      if (preg_match("/<".$name.">/i", $source) AND preg_match("/<\/".$name.">/i", $source)) {
         preg_match('#<'.$name.'>(.*?)</'.$name.'>#', $source, $matches);
         return $matches[1];
      } else {
         return '';
      }
   }
   
   function check_preg_all($name) {
      if (preg_match("/<".$name.">/i", $this->SHOUTcastData) AND preg_match("/<\/".$name.">/i", $this->SHOUTcastData)) {
         preg_match_all('#<'.$name.'>(.*?)</'.$name.'>#', $this->SHOUTcastData, $matches);
         return $matches[1];
      } else {
         return '';
      }
   }
   
   function check_input($text, $title=false) {
      if ($title) {
         $search = array("\"", "'", "\\", '\"', "\'", "_");
         $replace = array("&quot;", "&#39;", "&#92;", "&quot;", "&#39;", " ");
         $text = trim($text);
      } else {
         $search = array("&", "\"", "'", "\\", '\"', "\'");
         $replace = array("&amp;", "&quot;", "&#39;", "&#92;", "&quot;", "&#39;");
      }
      $text = trim(str_replace($search, $replace, $text));
      return $text;
   }

   function GetError() { return $this->error; }
}
?>



Editiert von Ragdoll am 10.03.2016 09:53:21
 
Ragdoll
Geschrieben am 10.03.2016 09:54:42
User Avatar

Posts: 2212
Registriert seit: 02.07.10

Da hast schonmal alles richtig, okay dann gehts weiter... macht ihr da nen großes i oder nen kleines L, statt dem | ??
www.granade.eu/images/linkus/gross4.png
 
Skugga
Geschrieben am 10.03.2016 23:53:32


Posts: 10
Registriert seit: 09.12.15

Hi cool das da erstmal nix falsch ist und um ehrlich zu sein,
wir nutzen es genau so. Habe die *? so gelassen und da wir
Shoutcast 1 nutzen, haben wir keinen ID Eintrag also keine 1 oder 2 und auch kein i oder l rein gebastelt.
An welcher stelle muss ich gugen?

Lieben Gruß
 
Ragdoll
Geschrieben am 11.03.2016 08:40:46
User Avatar

Posts: 2212
Registriert seit: 02.07.10

Mach mir mal nen screenshot von deiner Sendesoftware wo der Titel übertragen wird. Pfft
www.granade.eu/images/linkus/gross4.png
 
Skugga
Geschrieben am 13.03.2016 23:32:52


Posts: 10
Registriert seit: 09.12.15

picload.org/image/wpaiopg/sendedaten.png

Hier die Mairlist Metadaten wie du sehen wirst ist AIM und co leer.
 
Ragdoll
Geschrieben am 14.03.2016 10:58:21
User Avatar

Posts: 2212
Registriert seit: 02.07.10

Ja, aber dein Titelupdate stimmt nicht so ganz. :-P
www.granade.eu/images/linkus/gross4.png
 
Skugga
Geschrieben am 15.03.2016 00:06:01


Posts: 10
Registriert seit: 09.12.15

Das kommt weil ich bei 2 Sendern sende und der ist in meiner Liste an position 1 gewesen nur die namen ändern sich nicht die restlichen Einträge.
Da steht sonst FoxTimeFM beim anderen encoder. XD
 
Skugga
Geschrieben am 15.03.2016 00:07:52


Posts: 10
Registriert seit: 09.12.15

Ok das %a-%b ist Mairlist Vorgabe gewesen.
soll da das kleine i oder l rein?
 
Ragdoll
Geschrieben am 15.03.2016 05:14:43
User Avatar

Posts: 2212
Registriert seit: 02.07.10

weder noch STRG+ALT+<> = |
www.granade.eu/images/linkus/gross4.png
 
Skugga
Geschrieben am 16.03.2016 00:17:38


Posts: 10
Registriert seit: 09.12.15

Hi Habe es bei AIM und auch bei Log Format mal so einkopiert
aber er zeigt das unten geschrieben an STRG+ALT+<> = | statt den DJ
und dann noch ne Zahlenreihe und zum Schluss ein =
Denke da ist wohl bei unserem System der Wurm drin im Sendeplan wird man angezeigt das man on air ist oh und uns ist aufgefallen das der Sendeplan ne Stunde hinterher hingt.

Aber danke für die Hilfe bis her.
 
Ragdoll
Geschrieben am 16.03.2016 11:37:51
User Avatar

Posts: 2212
Registriert seit: 02.07.10

Wenn der Seneplan euch on Air zeigt, habt ihr den von Systemweb und mit dem haben wir rein gar nichts zu tun..

Wegen der Zeit.. Datum und Zeit auf der Homepage mal nachgeschaut..

Du sollst ja auch nicht STRG+ALT+<> = | schreiben das war eigentlich die Tastenkombi für den geraden strich.^^
www.granade.eu/images/linkus/gross4.png
 
Skugga
Geschrieben am 16.03.2016 19:37:26


Posts: 10
Registriert seit: 09.12.15

oh sorry ok danke also nur gerader strich rein hihi löl
ok wegen sendeplan und server zeit geht richtig aber schaue da noch mal nach aber da es sendeplan problem ist net eures teste gleich mal den strich Dankö schon mal
 
Skugga
Geschrieben am 16.03.2016 20:50:54


Posts: 10
Registriert seit: 09.12.15

So gerade bei AIM alleine | eingetragen keine Reaktion,
dann bei Log Format | alleine eingetragen kommt im Pannel nur N/A
und dann bei beiden passierte auch nix.
Kann es ein Fehler im Programmeintrag für die Streams sein?
nutzen 2 verschiedene.
MFG Skugga
 
Ragdoll
Geschrieben am 16.03.2016 23:19:13
User Avatar

Posts: 2212
Registriert seit: 02.07.10

Nochmal!

Für Sam: $combine$ | NickvonHp
Für Deins z.B.: %a - %b | NickvonHp
Für VirtualDj muss die Titelupdatefunktion in der Windows Regedit abgeschalten werden und Manuell gesetzt werden.
www.granade.eu/images/linkus/gross4.png
 
Skugga
Geschrieben am 21.03.2016 09:41:27


Posts: 10
Registriert seit: 09.12.15

So kleine Rückmeldung:
Es klappt danke dir für die Hilfe und sorry manchmal stehe auch ich auf dem Schlauch.
Immer wieder begeistert das Ihr so gute Arbeit macht.

Threat kann geschlossen werden.

herzlichst euer Skugga