Diesen Thread durchsuchen:   1 Anonyme Benutzer



BottomBottom  Vorheriges Thema Vorheriges Thema  Nächstes Thema Nächstes Thema   Zum Post anmelden



Aw:: Shoutcastmodul
#9
"myXOOPs"-Neuling
"myXOOPs"-Neuling


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

wäre super nett danke

Gepostet am:10.07.2012
 Top  Bericht


Aw:: Shoutcastmodul
#8
"myXOOPs"-Neuling
"myXOOPs"-Neuling


Siehe Benutzerinformationen
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

Gepostet am:31.07.2009

bearbeitet von SetepenRa am 31.07.2009 16:48:25
 Top  Bericht


Advertisement


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


Aw:: Shoutcastmodul
#7
"myXOOPs"-Profi
"myXOOPs"-Profi


Siehe Benutzerinformationen
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.

Gepostet am:31.07.2009
... is gone with the wind ...
 Top  Bericht


Aw:: Shoutcastmodul
#6
"myXOOPs"-Neuling
"myXOOPs"-Neuling


Siehe Benutzerinformationen
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

Gepostet am:31.07.2009
 Top  Bericht


Aw:: Shoutcastmodul
#5
"myXOOPs"-Neuling
"myXOOPs"-Neuling


Siehe Benutzerinformationen
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

Gepostet am:30.07.2009
 Top  Bericht


Aw:: Shoutcastmodul
#4
"myXOOPs"-Profi
"myXOOPs"-Profi


Siehe Benutzerinformationen
Ich hatte eh vor so etwas in mein Modul einzubauen, bin aber noch nicht dazu gekommen.

Also etwas (viel?) Geduld.

Gepostet am:30.07.2009
... is gone with the wind ...
 Top  Bericht


Aw:: Shoutcastmodul
#3
"myXOOPs"-Neuling
"myXOOPs"-Neuling


Siehe Benutzerinformationen
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

Gepostet am:30.07.2009
 Top  Bericht


Aw:: Shoutcastmodul
#2
"myXOOPs"-Profi
"myXOOPs"-Profi


Siehe Benutzerinformationen
Möglicherweise ist unter den Suchergebnissen etwas dabei?

Gepostet am:30.07.2009
... is gone with the wind ...
 Top  Bericht


Shoutcastmodul
#1
"myXOOPs"-Neuling
"myXOOPs"-Neuling


Siehe Benutzerinformationen
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

Gepostet am:30.07.2009
 Top  Bericht








[Erweiterte Suche]


Design by: XOOPS UI/UX Team