MyXoops Forum

Aw:: Shoutcastmodul [Entwicklung allgemein] - myXOOPS German Support

pcicase

"myXOOPs"-Neuling
Gepostet am:10.07.2012 11:29
pcicase
pcicase Offline (Show more)
"myXOOPs"-Neuling
Posts: 50
Since: 14.04.2011
#9

Aw:: Shoutcastmodul

hallo hönntes du die zip datei nochmal zum download anhängen

wäre super nett danke

SetepenRa

"myXOOPs"-Neuling
Gepostet am:31.07.2009 16:41
SetepenRa
SetepenRa Offline (Show more)
"myXOOPs"-Neuling
Posts: 12
Since: 27.07.2009
#8

Aw:: Shoutcastmodul

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 Benutzer

Advertisement

Gepostet am:0
Advertisement (Show more)
Posts: 0
Since: 0


Hier könnten Sie Ihre Anzeige aufgeben!
Bitte kontaktieren Sie uns, um mehr darüber zu erfahren.

frankblack

"myXOOPs"-Profi
Gepostet am:31.07.2009 16:05
frankblack
frankblack Offline (Show more)
"myXOOPs"-Profi
Posts: 747
Since: 19.04.2006
#7

Aw:: Shoutcastmodul

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

"myXOOPs"-Neuling
Gepostet am:31.07.2009 14:48
SetepenRa
SetepenRa Offline (Show more)
"myXOOPs"-Neuling
Posts: 12
Since: 27.07.2009
#6

Aw:: Shoutcastmodul

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

"myXOOPs"-Neuling
Gepostet am:30.07.2009 21:55
SetepenRa
SetepenRa Offline (Show more)
"myXOOPs"-Neuling
Posts: 12
Since: 27.07.2009
#5

Aw:: Shoutcastmodul

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

"myXOOPs"-Profi
Gepostet am:30.07.2009 18:55
frankblack
frankblack Offline (Show more)
"myXOOPs"-Profi
Posts: 747
Since: 19.04.2006
#4

Aw:: Shoutcastmodul

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

"myXOOPs"-Neuling
Gepostet am:30.07.2009 18:28
SetepenRa
SetepenRa Offline (Show more)
"myXOOPs"-Neuling
Posts: 12
Since: 27.07.2009
#3

Aw:: Shoutcastmodul

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

"myXOOPs"-Profi
Gepostet am:30.07.2009 17:46
frankblack
frankblack Offline (Show more)
"myXOOPs"-Profi
Posts: 747
Since: 19.04.2006
#2

Aw:: Shoutcastmodul

Möglicherweise ist unter den Suchergebnissen etwas dabei?
... is gone with the wind ...

SetepenRa

"myXOOPs"-Neuling
Gepostet am:30.07.2009 17:35
SetepenRa
SetepenRa Offline (Show more)
"myXOOPs"-Neuling
Posts: 12
Since: 27.07.2009
#1

Shoutcastmodul

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
Diesen Thread durchsuchen:  1 Anonyme Benutzer

Aktuell aus dem Forum

Forum Thema Antworten Views Letzter Beitrag
OffOffTopic [Wichtig] Übernahme myXOOPS 0 494 11.12.2023 18:57
alfred Gehe zum letzten Beitrag
Die Installation und Administration von XOOPS 2.5.X [Offen] Upgrade 2.5.11 3 2207 07.05.2023 07:03
Goffy Gehe zum letzten Beitrag