Leser in diesem Thema: 1 Anonyme(r)
pcicase pcicase
  • "myXOOPs"-Neuling
  • "myXOOPs"-Neuling
  • Registriert seit: 14.04.2011
  • Aus: MG
  • Gruppe: Mitglieder
  • Beiträge: 50
  • Offline
  • Geschrieben von: 10.07.2012
Aw:: Shoutcastmodul #9
hallo hönntes du die zip datei nochmal zum download anhängen

wäre super nett danke
SetepenRa SetepenRa
  • "myXOOPs"-Neuling
  • "myXOOPs"-Neuling
  • Registriert seit: 27.07.2009
  • Gruppe: Mitglieder
  • Beiträge: 12
  • Offline
  • Geschrieben von: 31.07.2009
Aw:: Shoutcastmodul #8
Zitat:

frankblack schrieb:
Zitat:
selbstaufdieschulterklopp


Ich klopf mit. Kannst du den Code bitte einmal posten? Würde mir evtl. auch die Arbeit bei meinem Modul erleichtern. Du wirst auch in den Credits genannt.


Sicher kann ich das....hab ja auch nur vorhandenes umgemodelt und angepasst :) läuft als eigener Block einwandfrei...müsstest halt nur mal die Textausgabe auf nem ordentlichen Server testen weil ich da wie gesagt nen "Connection Timeout habe wegen Serverstandort und -konfig in den Staaten.

class Radio {    var $fields = array();    var $fieldsDefaults = array("Server Status""Stream Status""Listener Peak""Average Listen Time""Stream Title""Content Type""Stream Genre""Stream URL""Current Song""Stream AIM");    var $very_first_str;    var $domain$port$path;    var $errno$errstr;    var $trackLists = array();    var $isShoutcast;    var $nonShoutcastData = array(                "Server Status"      => "n/a",                "Stream Status"      => "n/a",                "Listener Peak"      => "n/a",                "Average Listen Time"   => "n/a",                "Stream Title"      => "n/a",                "Content Type"      => "n/a",                "Stream Genre"      => "n/a",                "Stream URL"      => "n/a",                "Stream AIM"      => "n/a",                "Stream IRC"      => "n/a",                "Current Song"      => "n/a"                );    var $altServer False;     function Radio($url)    {       $parsed_url parse_url($url);       $this->domain   = isset($parsed_url['host']) ? $parsed_url['host'] : "";       $this->port   = !isset($parsed_url['port']) || empty($parsed_url['port']) ? "80" $parsed_url['port'];       $this->path   = empty($parsed_url['path']) ? "/" $parsed_url['path'];        if (empty($this->domain))       {          $this->domain $this->path;          $this->path "";       }        $this->setOffset("Current Stream Information");       $this->setFields();      // setting default fields        $this->setTableStart("<table border=0 cellpadding=2 cellspacing=2>");       $this->setTableEnd("</table>");    }     function setFields($array=False)    {       if (!$array)          $this->fields = $this->fieldsDefaults;       else          $this->fields = $array;    }    function setOffset($string)    {       $this->very_first_str = $string;    }    function setTableStart($string)    {       $this->tableStart = $string;    }    function setTableEnd($string)    {       $this->tableEnd = $string;    }     function getHTML($page=False)    {       if (!$page)          $page = $this->path;       $contents = "";       $domain = (substr($this->domain, 0, 7) == "http://") ? substr($this->domain, 7) : $this->domain;         if (@$fp = fsockopen($domain, $this->port, $this->errno, $this->errstr, 2))       {          fputs($fp, "GET ".$page." HTTP/1.1rn".             "User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)rn".             "Accept: */*rn".             "Host: ".$domain."rnrn");           $c = 0;          while (!feof($fp) && $c <= 20)          {             $contents .= fgets($fp, 4096);             $c++;          }           fclose ($fp);           preg_match("/(Content-Type:)(.*)/i", $contents, $matches);          if (count($matches) > 0)          {             $contentType = trim($matches[2]);             if ($contentType == "text/html")             {                $this->isShoutcast = True;                return $contents;             }             else             {                $this->isShoutcast = False;                 $htmlContent = substr($contents, 0, strpos($contents, "rnrn"));                 $dataStr = str_replace("r", "n", str_replace("rn", "n", $contents));                $lines = explode("n", $dataStr);                foreach ($lines AS $line)                {                   if ($dp = strpos($line, ":"))                   {                      $key = substr($line, 0, $dp);                      $value = trim(substr($line, ($dp+1)));                      if (preg_match("/genre/i", $key))                         $this->nonShoutcastData['Stream Genre'] = $value;                      if (preg_match("/name/i", $key))                         $this->nonShoutcastData['Stream Title'] = $value;                      if (preg_match("/url/i", $key))                         $this->nonShoutcastData['Stream URL'] = $value;                      if (preg_match("/content-type/i", $key))                         $this->nonShoutcastData['Content Type'] = $value;                      if (preg_match("/icy-br/i", $key))                         $this->nonShoutcastData['Stream Status'] = "Stream is up at ".$value."kbps";                      if (preg_match("/icy-notice2/i", $key))                      {                         $this->nonShoutcastData['Server Status'] = "This is <span style="color: red;">not</span> a Shoutcast server!";                         if (preg_match("/ultravox/i", $value))                            $this->nonShoutcastData['Server Status'] .= " But an <a href="http://ultravox.aol.com/" target="_blank">Ultravox</a> Server";                         $this->altServer = $value;                      }                   }                }                return nl2br($htmlContent);             }          }          else             return $contents;       }       else       {          return False;       }    }     function getServerInfo($display_array=null, $very_first_str=null)    {       if (!isset($display_array))          $display_array = $this->fields;       if (!isset($very_first_str))          $very_first_str = $this->very_first_str;        if ($html = $this->getHTML())       {           // parsing the contents          $data = array();          foreach ($display_array AS $key => $item)          {             if ($this->isShoutcast)             {                $very_first_pos   = stripos($html, $very_first_str);                $first_pos   = stripos($html, $item, $very_first_pos);                $line_start   = strpos($html, "<td>", $first_pos);                $line_end   = strpos($html, "</td>", $line_start) + 4;                $difference   = $line_end - $line_start;                $line      = substr($html, $line_start, $difference);                $data[$key]   = strip_tags($line);             }             else             {                $data[$key]   = $this->nonShoutcastData[$item];             }          }          return $data;       }       else       {          return $this->errstr." (".$this->errno.")";       }    }     function createHistoryArray($page)    {       if (!in_array($page, $this->trackLists))       {          $this->trackLists[] = $page;          if ($html = $this->getHTML($page))          {             $fromPos   = stripos($html, $this->tableStart);             $toPos      = stripos($html, $this->tableEnd, $fromPos);             $tableData   = substr($html, $fromPos, ($toPos-$fromPos));             $lines      = explode("</tr><tr>", $tableData);             $tracks = array();             $c = 0;             foreach ($lines AS $line)             {                $info = explode ("</td><td>", $line);                $time = trim(strip_tags($info[0]));                if (substr($time, 0, 9) != "Copyright" && !preg_match("/Tag Loomis, Tom Pepper and Justin Frankel/i", $info[1]))                {                   $this->tracks[$c]['time'] = $time;                   $this->tracks[$c++]['track'] = trim(strip_tags($info[1]));                }             }             if (count($this->tracks) > 0)             {                unset($this->tracks[0]);                if (isset($this->tracks[1]))                   $this->tracks[1]['track'] = str_replace("Current Song", "", $this->tracks[1]['track']);             }          }          else          {             $this->tracks[0] = array("time"=>$this->errno, "track"=>$this->errstr);          }       }    } }   $ip  = "xxx.xxx.xxx.xxx"; //Stream-IP oder URL $port = "xxxx"; //Stream-Port   $display_array = array("Stream Title", "Stream Genre", "Current Song"); //Ausgabestring erweiterbar mit obigen Variablen  $radio = new Radio($ip.":".$port);  $data_array = $radio->getServerInfo($display_array);  echo "<br>"; echo "<table>n";  if (is_array($data_array)) {     foreach ($display_array AS $i => $text)     {          if ($text == "Stream Genre")     {             $datastring = "<span style="color: lightgrey; background-color: black;">".$data_array[$i]."</span>";         }    else         {      $datastring = $data_array[$i];         }  echo "<tr>n <td><font color='#FF9900'><b>".$text.":</b></span></td>n";         echo " <td>".$datastring."</td>n</tr>n";     } } else {     echo "<tr>n <td colspan="2" style="color: red;">".$data_array."</td>n</tr>n"; } echo "</table>n"; echo "<br>"; //Ausgabe Playerlogo und Link echo'        <a href="{X_SITEURL}xxx.pls" target="_new">           <img border="0" src="{X_SITEURL}images/winamp.png" width="20px" height="20px" alt="Winamp"></a>         <a href="{X_SITEURL}xxx.asx" target="_new">           <img border="0" src="{X_SITEURL}images/wmp.png" width="20px" height="20px" alt="MediaPlayer"></a>         <a href="{X_SITEURL}xxx.ram" target="_new">           <img border="0" src="{X_SITEURL}images/realplayer.png" width="20px" height="20px" alt="Realplayer"></a>               
<br>  
      
//Alternative Player

<a href="psradio://|ChannelId|9399" target="_new">            <img border="0" src="{X_SITEURL}images/phonostar-logo.gif"  width="100px" height="20px alt="Phonostarplayer"></a>             <br>                <p><a href="{X_SITEURL}webplayer/index.html" target="_new">           <img border="0" src="{X_SITEURL}images/webplayer.jpg"  width="100px" height="20px alt="Flash-Webplayer"></a></p>';
*/


ok..der Formatiert das nen bisl komisch also häng ich es nochmal als Zip an

bei der Playerausgabe sind die letzten beiden (phonostar und webplayer) alternative Player..also nicht für jeden brauchbar :)

Gruß
Set

Datei anhängen:


Link nur für registrierte User sichtbar
Bearbeitet von SetepenRa am 31.07.2009 16:48:25
Werbung  

Hier könnte auch Ihre Werbung stehen!
Kontaktieren Sie uns dazu und wir unterbreiten Ihnen ein Angebot.
frankblack frankblack
  • "myXOOPs"-Profi
  • "myXOOPs"-Profi
  • Registriert seit: 19.04.2006
  • Aus: D-Schiefbahn
  • Gruppe: Mitglieder
  • Beiträge: 747
  • Offline
  • Geschrieben von: 31.07.2009
Aw:: Shoutcastmodul #7
Zitat:
selbstaufdieschulterklopp


Ich klopf mit. Kannst du den Code bitte einmal posten? Würde mir evtl. auch die Arbeit bei meinem Modul erleichtern. Du wirst auch in den Credits genannt.
... is gone with the wind ...
SetepenRa SetepenRa
  • "myXOOPs"-Neuling
  • "myXOOPs"-Neuling
  • Registriert seit: 27.07.2009
  • Gruppe: Mitglieder
  • Beiträge: 12
  • Offline
  • Geschrieben von: 31.07.2009
Aw:: Shoutcastmodul #6
ok..hab den Shoutcast als funktionierenden Block hinbekommen "selbstaufdieschulterklopp" :D

einzoig was es net anzeigt ist streamdaten..liegt abe3r wohl eher daran das mein Testserver in den Staaten steht..das Problem hatte ich schon früher mal damit :) werde es ja spätestens sehen wenn ich auf den Hauptserver in D wechsle
SetepenRa SetepenRa
  • "myXOOPs"-Neuling
  • "myXOOPs"-Neuling
  • Registriert seit: 27.07.2009
  • Gruppe: Mitglieder
  • Beiträge: 12
  • Offline
  • Geschrieben von: 30.07.2009
Aw:: Shoutcastmodul #5
wieviel ist den viel??? :)

Weil ich frage darum weil ich gerade dabei bin mein radio umzubauen und dafür von Fusion auf Xoops umsteigen will...
ansonsten muss ich halt auch selbst noch ein wenig intensiver mich jetzt schon mit beschäftigen
frankblack frankblack
  • "myXOOPs"-Profi
  • "myXOOPs"-Profi
  • Registriert seit: 19.04.2006
  • Aus: D-Schiefbahn
  • Gruppe: Mitglieder
  • Beiträge: 747
  • Offline
  • Geschrieben von: 30.07.2009
Aw:: Shoutcastmodul #4
Ich hatte eh vor so etwas in mein Modul einzubauen, bin aber noch nicht dazu gekommen.

Also etwas (viel?) Geduld.
... is gone with the wind ...
SetepenRa SetepenRa
  • "myXOOPs"-Neuling
  • "myXOOPs"-Neuling
  • Registriert seit: 27.07.2009
  • Gruppe: Mitglieder
  • Beiträge: 12
  • Offline
  • Geschrieben von: 30.07.2009
Aw:: Shoutcastmodul #3
leider nein...soweit war ich schonmal...das Script was da vorgeschlagen wird bringt bei mir nur nen XML Error nach einiger Zeit des ladens..und das UHQ-Radio verursacht nur das meien Seite gar nicht mehr angezeigt wird
frankblack frankblack
  • "myXOOPs"-Profi
  • "myXOOPs"-Profi
  • Registriert seit: 19.04.2006
  • Aus: D-Schiefbahn
  • Gruppe: Mitglieder
  • Beiträge: 747
  • Offline
  • Geschrieben von: 30.07.2009
Aw:: Shoutcastmodul #2
Möglicherweise ist unter den Suchergebnissen etwas dabei?
... is gone with the wind ...
SetepenRa SetepenRa
  • "myXOOPs"-Neuling
  • "myXOOPs"-Neuling
  • Registriert seit: 27.07.2009
  • Gruppe: Mitglieder
  • Beiträge: 12
  • Offline
  • Geschrieben von: 30.07.2009
Shoutcastmodul #1
hi zusammen

ich hab mal ne frage...hab jetzt schon längere Zeit gesucht aber nix gefunden. Ich such nen shoutcastmodul für Xoops.

es sollte aktuellen Interpreten und Titel anzeigen..sowie Playerlinks zur verfügung stellen können.
Gibt es sowas schon??

Habe schon selbst versucht ein Block oder Modul zu erstellen..aber für mich als Xoopsnewbie ist das nicht so wirklich einfach :)

Danke schonmal im Voraus

Set
Design by: XOOPS UI/UX Team