TV Programm

Ja, du hast kein curl installiert.

Danke für die schnelle Anwort.

OK, sorry aber was ist „curl“ ?

Grüße

Ok, was curl ist is mir nu klar. aber wie binde ich es ein damit ips die Lib mit einliest?

Grüße

z.B. hier

einfach in ext/ legen und IPS neu startetn

Super. Vielen Dank. Das wars.

Grüße…

Hallo,

kann es sein das es TVMovie rss nicht mehr gibt!?

Das Script geht nicht mehr und auch die Feed Seite kann ich nicht aufrufen :frowning:

Sieht fast so aus, finde auf der Tvmovie.de-Seite auch keinen hinweis mehr auf ein RSS-Feed.

Anbei die geänderte Variante für TV-Spielfilm:

<?

/* Basis: RSS FEED Newsticker korny@korny.org
/* TV Programm: by Smokey
/* Umstellung auf TV-Spielfilm: Kronos

Script in einen Kategorie kopieren
Script gegebenenfalls umbenennen
Skrip ausführen, neue Variable "CONTENT" (wird automatisch angelegt) im WebFront benutzen
*/

//gewünschten Feed einkommentieren

//$url='http://www.tvspielfilm.de/tv-programm/rss/tipps.xml'; // Tipp des Tages
//$url='http://www.tvspielfilm.de/tv-programm/rss/heute2015.xml'; // Programm ab 20:15
//$url='http://www.tvspielfilm.de/tv-programm/rss/heute2200.xml'; // Programm ab 22:00
//$url='http://www.tvspielfilm.de/tv-programm/rss/jetzt.xml'; // Programm jetzt
//$url='http://www.tvspielfilm.de/tv-programm/rss/filme.xml'; // Spielfilm Highlights des Tages
//$url='http://www.tvspielfilm.de/news-und-specials/newsarchiv/rss.xml'; // News and Specials

$newsanzahl=20; // gewünschte Newsanzahl eingeben, keine aenderung = 5 News werden erstellt

// ab hier nicht mehr ändern

$group=0;
$id=$IPS_SELF;
$group=IPS_GetObject($id);
$group=$group['ParentID'];

$name=IPS_GetName($group);

// Hauptscript

$rss_channel = array();
$currently_writing = "";
$main = "";
$item_counter = 0;

function startElement($parser, $name, $attrs) {
       global $rss_channel, $currently_writing, $main;
       switch($name) {
           case "RSS":
           case "RDF:RDF":
           case "ITEMS":
               $currently_writing = "";
               break;
           case "CHANNEL":
               $main = "CHANNEL";
               break;
           case "IMAGE":
               $main = "IMAGE";
               $rss_channel["IMAGE"] = array();
               break;
           case "ITEM":
               $main = "ITEMS";
               break;
           default:
               $currently_writing = $name;
               break;
       }
}

function endElement($parser, $name) {
       global $rss_channel, $currently_writing, $item_counter;
       $currently_writing = "";
       if ($name == "ITEM") {
           $item_counter++;
       }
}

function characterData($parser, $data) {
    global $rss_channel, $currently_writing, $main, $item_counter;
    if ($currently_writing != "") {
        switch($main) {
            case "ITEMS":
                if (isset($rss_channel[$main][$item_counter][$currently_writing])) {
                    $rss_channel[$main][$item_counter][$currently_writing] .= $data;
                } else {
                    $rss_channel[$main][$item_counter][$currently_writing] = $data;
                }
                break;
        }
    }
}

$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");

$data=curl_string($url);
xml_parse($xml_parser,$data);
xml_parser_free($xml_parser);

// putting in array
$news=array();
if (isset($rss_channel["ITEMS"]))
{
    if (count($rss_channel["ITEMS"]) > 0)
        for($i = 0;$i < count($rss_channel["ITEMS"]);$i++) $news[]=$rss_channel["ITEMS"][$i];
}
$nr_news = "";
$c=0;
foreach($news as $key=>$val)
{
    if($c<$nr_news)
    {
#        echo "<p align=left>";
#        echo '<a href="'.$val['LINK'].'">'.$val['TITLE'].'</a> - '.$val['PUBDATE'].'<br>'.''.$val['DESCRIPTION'].'</font></p>';
    }
    $c++;
}


function curl_string ($url,$user_agent='Mozilla 4.0'){

       $ch = curl_init();

       curl_setopt ($ch, CURLOPT_URL, $url);
       curl_setopt ($ch, CURLOPT_USERAGENT, $user_agent);
       curl_setopt ($ch, CURLOPT_HEADER, 0);
       curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
       curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
       curl_setopt ($ch, CURLOPT_TIMEOUT, 120);
       $result = curl_exec ($ch);
       curl_close($ch);
       return $result;

}
$news="";

if ($newsanzahl > count($rss_channel['ITEMS']))
{
	$newsanzahl = count($rss_channel['ITEMS']);
}

for($i=0;$i<count($rss_channel['ITEMS']);$i++) {
    $j="0";
    $news[$i][$j]=$rss_channel['ITEMS'][$i]['TITLE']."";
    $j++;
    $news[$i][$j]=$rss_channel['ITEMS'][$i]['LINK']."";
    $j++;
    $news[$i][$j]=$rss_channel['ITEMS'][$i]['DESCRIPTION']."";
    $j++;
    $news[$i][$j]=""; //$rss_channel['ITEMS'][$i]['PUBDATE']."" ==> PUDATE gibt es bei TV Programm nicht
    $j++;
    $news[$i][$j]=$rss_channel['ITEMS'][$i]['GUID']."";
}

$result="";
$result = "<table width='100%' table height='250' align='center'>
";
$result .= "<tr><td width='7%'><b>Sender</b></td><td width='6%'><b>Zeit</b></td><td width='30%'><b>Sendung</b></td><td><b>Detail</b></td></tr>
";
for($i=0;$i<$newsanzahl;$i++) {
   $result .= "<tr>
";

   //Sender
   $temp ="";
    $newsline=$news[$i][0];
    $newsline=text_formatierung($newsline);
    $temp = substr($newsline,strpos($newsline," | ")+3);
    $temp = substr($temp,0,strpos($temp," | "));
    switch($temp) {
       case "Das Erste":
            //$result .= "<td><img src=/user/icons/TV/ard_30x30.png></td>
";
            $result .= "<td><img src=/user/icons/TV/ard_das_erste.gif></td>
";
         break;
       case "ZDF":
            $result .= "<td><img src=/user/icons/TV/zdf_de.gif></td>
";
         break;
       case "RTL":
            $result .= "<td><img src=/user/icons/TV/rtl.gif></td>
";
         break;
       case "Sat.1":
            $result .= "<td><img src=/user/icons/TV/sat1.gif></td>
";
         break;
       case "ProSieben":
            $result .= "<td><img src=/user/icons/TV/prosieben.gif></td>
";
         break;
       case "RTL II":
            $result .= "<td><img src=/user/icons/TV/rtl2.gif></td>
";
         break;
         break;
       case "kabel eins":
            $result .= "<td><img src=/user/icons/TV/kabel_eins.gif></td>
";
         break;
       case "3sat":
            $result .= "<td><img src=/user/icons/TV/3sat.gif></td>
";
         break;
       case "SUPER RTL":
            $result .= "<td><img src=/user/icons/TV/super_rtl.gif></td>
";
         break;
       case "":
            $result .= "<td><img src=/user/icons/TV/.gif></td>
";
         break;
       case "VOX":
            $result .= "<td><img src=/user/icons/TV/vox.gif></td>
";
         break;
       case "ARTE":
            $result .= "<td><img src=/user/icons/TV/arte_de.gif></td>
";
         break;
       case "WDR":
            $result .= "<td><img src=/user/icons/TV/wdr_fernsehen.gif></td>
";
         break;
       case "NDR":
            $result .= "<td><img src=/user/icons/TV/ndr_fernsehen.gif></td>
";
         break;
       case "RBB":
            $result .= "<td><img src=/user/icons/TV/rbb_de.gif></td>
";
         break;
       case "MDR":
            $result .= "<td><img src=/user/icons/TV/mdr_fernsehen.gif></td>
";
         break;
       case "SWR":
            $result .= "<td><img src=/user/icons/TV/swr_fernsehen.gif></td>
";
         break;
       case "BR":
            $result .= "<td><img src=/user/icons/TV/br_fernsehen.gif></td>
";
         break;
       case "TV Berlin":
            $result .= "<td><img src=/user/icons/TV/tv_berlin.gif></td>
";
         break;
       case "HR":
            $result .= "<td><img src=/user/icons/TV/hr_fernsehen.gif></td>
";
         break;
       case "ZDFneo":
            $result .= "<td><img src=/user/icons/TV/zdf_neo.gif></td>
";
         break;
       case "DAS VIERTE":
            $result .= "<td><img src=/user/icons/TV/das_vierte.gif></td>
";
         break;
       case "EinsFestival":
            $result .= "<td><img src=/user/icons/TV/ard_eins_festival.gif></td>
";
         break;
        default:
            $result .= "<td></td>
";
         break;
    }

   //Zeit
   $newsline=$news[$i][0];
   $newsline=text_formatierung($newsline);
   $result .= "<td>".substr($newsline,0,5)."</td>
";

   //Sendung
   $newsline=$news[$i][0];
   $newsline=text_formatierung($newsline);
   $sendung = substr($newsline,strpos($newsline," | ")+3);
   $sendung = substr($sendung,strpos($sendung," | ")+3);
   $result .= "<td>".$sendung." (".$temp.") </td>
";

   //Detail
   $newsline=$news[$i][2];
   $newsline=text_formatierung($newsline);
   $result .= "<td>".$newsline."</td>
";

   $result .= "</tr>
";

   $result .= "<td>".""."</td>
";
   $result .= "<td>".""."</td>
";
   $result .= "<td>"." "."</td>
";
   $result .= "</tr>
";


}
$result .= "</table>";

//Ergbenis in Variable schreiben
$vid = CreateVariableByName($group, "Content", 3);
//IPS_SetIcon($vid, "Distance");
IPS_SetVariableCustomProfile($vid, "~HTMLBox");
SetValue($vid, $result);


function text_formatierung($newsline){

// Hier können noch anpassungen gemacht werden

#$newsline=html_entity_decode($newsline);
#$newsline=str_replace("         ", " ", $newsline);
#$newsline=str_replace("ö", "ö", $newsline);
#$newsline=str_replace("Ãœ", "Ü", $newsline);
#$newsline=str_replace("ü", "ü", $newsline);
#$newsline=str_replace("ä", "ä", $newsline);
#$newsline=str_replace("ß", "ß", $newsline);
#$newsline=str_replace("&ndash;", "-", $newsline);
#$newsline=str_replace('&#039;', "`", $newsline);
#$newsline=str_replace("&", "&", $newsline);
#$newsline=strip_tags($newsline);


$newsline=strip_tags($newsline);
$newsline=html_entity_decode($newsline);
$newsline=str_replace("         ", " ", $newsline);
$newsline=str_replace("ö", "ö", $newsline);
$newsline=str_replace("Ãœ", "Ü", $newsline);
$newsline=str_replace("ü", "ü", $newsline);
$newsline=str_replace("ä", "ä", $newsline);
$newsline=str_replace("ß", "ß", $newsline);
$newsline=str_replace("&ndash;", "-", $newsline);
$newsline=str_replace('&#039;', "`", $newsline);
$newsline=str_replace("&", "&", $newsline);
$newsline=str_replace("Ö", "Ö", $newsline);
$newsline=str_replace("„", "\"", $newsline);
$newsline=str_replace("“", "\"", $newsline);
$newsline=str_replace("–", "-", $newsline);
$newsline=str_replace("„", "\"", $newsline);
$newsline=str_replace("“", "\"", $newsline);

$newsline=str_replace("„", "\"", $newsline);
$newsline=str_replace("–", "-", $newsline);
$newsline=preg_replace("/\r|
/s", "", $newsline);
return $newsline;
}

function CreateVariableByName($id, $name, $type)
{
    global $IPS_SELF;
    $vid = @IPS_GetVariableIDByName($name, $id);
    if($vid === false)
    {
        $vid = IPS_CreateVariable($type);
        IPS_SetParent($vid, $id);
        IPS_SetName($vid, $name);
        IPS_SetInfo($vid, "this variable was created by script #$IPS_SELF");
    }
    return $vid;
}

?>

PS: Fehlende Senderlogos nehme ich sehr gerne per PM entgegen…

Danke,

werde ich heute abend gleich probieren.

Schau mal in die Post!

Also geht Ihr davon aus das das Ding tot bleibt …?

War schon vorher bei dem anderen Anbieter da der zumindest bei den Spielfilmtips Sky mit drin hat.

Und nachdem das Thema RSS-Feeds auf der Webseite nun komplett totgeschwiegen wird gehe ich nicht davon aus, dass da bald wieder was kommt.

Grüsse.

Schau mal in die Post!

Danke Dir!

Witzig. Die Spielfilmliste funktioniert wieder.
Die 20:15 Abfrage jedoch nicht.

Und @RWN hat in dem anderen Thread (Atom Feeed) anscheinend geschrieben das es bei Ihm gar kein Problem zu geben scheint. (habe ich zumindest so verstanden)

Abwarten und Tee trinken ?

Gruss
B71

So…heute ist auch der 20:15 Uhr feed wieder da…also wieder alles zurückbauen…

Hast Du auch nochmal die Adressen ? Ich finde die Links nicht :mad:

Faulpelz :smiley:

Sind im ersten Posting.

Sorry, so weit war ich nicht zurückgegangen :o

Danke

Hat von euch jemand schon das Problem gehabt, das nicht alle Senderlogos die hinterlegt sind angezeigt werden?

Bis „Super RTL“ ist im Script das .PNG hinterlergt, mir zeigt es aber nur das Icon bis RTL2 an.

Abend!

Super Skript ist das hier! Kann man sehr vielseitig einsetzen! Danke!!! :slight_smile:

Allerdings hab ich mir eine kleine Änderung eingebaut, da ich immer alle Sender angezeigt bekommen möchte, die Anzahl der Sender sich aber verändern kann. Also ist da ein fester Wert eher doof. Trägt man aber bei der Anzahl einfach 1000 ein, dann wird das Skript mit Fehler markiert, weil die FOR-Schleife ja bis zum Ende der Anzahl bzw. bis zum maximalen Fehlercount weiter läuft.

Um das zu verhindern, hab ich einfach folgende IF-Abfrage in die FOR-Schleife eingebaut:

if(isset($searchArray['enclosure']) != true)  {
        break;
}

Um das Skript verwenden zu können, muss man sich nur eine String-Variable mit HTMLBox Profil anlegen und dazu ein Skript mit folgendem Inhalt (es wird automatisch auch ein Timer erzeugt, der die Daten regelmäßig aktualisiert. Diesen sollte man sinnvoll anpassen, denn das Programm für 20.15 Uhr reicht einmal am Tag ein Update zu machen, aber beim Programm JETZT sollte man schon öfters ein Update machen):

<?
// KONFIGURATION
$senderAnzahl = 1000; // Anzahl der anzuzeigenden Sender festlegen, oder für alle so lassen
$ausgabeVariable = 51552 /*[Hardware & Skripte\TV Programm\TV MOVIE\TV Programm 20.15 Uhr]*/;  // Hier die ID der String-Variable mit HTMLBox Profil eintragen
$refreshtime = 900;  // Aktualisiert die Daten alle 15 Minuten (bei Programm für 20.15 Uhr usw. reicht einmal am Tag

$url='http://www.tvmovie.de/rss/tv2015.xml';                 // TV Programm 20.15 Uhr
//$url='http://www.tvmovie.de/rss/tv2200.xml';               // TV Programm 22.00 Uhr
//$url='http://www.tvmovie.de/rss/tvjetzt.xml';              // TV Programm JETZT
//$url='http://www.tvmovie.de/rss/tvtipps-spielfilm.xml';    // TV Programm SPIELFILME


// AB HIER NICHTS MEHR ÄNDERN
IPS_SetScriptTimer($IPS_SELF, $refreshtime);
$simpleXMLElement = simplexml_load_file($url);
$str =  "<table width='auto'>";

// Datenausgabe
for($i=0; $i<$senderAnzahl; $i++)
{
	 $item = $simpleXMLElement->channel->item;
    $item = xmlToArray($item[$i]);
     $titel = "<b style=color:#C00000;>".$item['title']."</b>";
     $beschreibung = "<small>".$item['description']."</small>";
     $text = $titel."<br>".$beschreibung."<br>";
     $text = utf8_decode($text);
     $searchArray = $item;
     
     // IF-Abfrage, wenn Array zu Ende, dann abbrechen
     if(isset($searchArray['enclosure']) != true)  {
        break;
     }
     if(array_key_exists('enclosure', $searchArray))
     {
         $image = $item['enclosure']['@attributes']['url'];
        $str .= "<tr>";
        $str .= "<td width='auto'height='80px'><div><img src=$image alt='not Found'></div></td>";
        $str .= "<td width='980px'><div style='text-align:left; margin-left:10px;'>$text</div>";
        $str .= "</td></tr>
";
    }
    else
    {
        $str .= "<tr>";
        $str .= "<td></td><td width='980px'><div style='text-align:left; margin-left:10px;'>$text</div></td>";
        $str .= "</tr>
";
    }
}
$str .= "</table>
";

SetValue($ausgabeVariable, $str);

function xmlToArray($data)
{
    if(is_object($data))
    {
        $data = get_object_vars($data);
    }
      return (is_array($data)) ? array_map(__FUNCTION__,$data) : $data;
}

?>

Grüße,
Chris