home
products
contribute
download
documentation
forum
Home
Forums
New posts
Search forums
What's new
New posts
All posts
Latest activity
Members
Registered members
Current visitors
Donate
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Search titles only
By:
Menu
Log in
Register
Navigation
Install the app
Install
More options
Contact us
Close Menu
Forums
MediaPortal 1
Development
General Development (no feature request here!)
XMLTV Updater Germany / TV-Spielfilm
Contact us
RSS
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="mcbyte" data-source="post: 21161"><p>Here is the code. Its quite beta but maybe it helps someone <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite2" alt=";)" title="Wink ;)" loading="lazy" data-shortname=";)" /></p><p></p><p>Needs PHP 5+</p><p></p><p>xmltv.php:</p><p>[code]</p><p><?php</p><p></p><p>$channels = array(</p><p> 'RTL' => array('id' => 'rtl.de', 'name' => 'RTL Television', 'icon' => 'http://i.tvspielfilm.de/tvs/sender/pics/rtl.gif'),</p><p> 'RTL2' => array('id' => 'rtl2.de', 'name' => 'RTL2', 'icon' => 'http://i.tvspielfilm.de/tvs/sender/pics/rtl2.gif'),</p><p> 'SUPER' => array('id' => 'superrtl.de', 'name' => 'Super RTL', 'icon' => 'http://i.tvspielfilm.de/tvs/sender/pics/ruper.gif'),</p><p> 'VOX' => array('id' => 'vox.de', 'name' => 'VOX', 'icon' => 'http://i.tvspielfilm.de/tvs/sender/pics/vox.gif'),</p><p> 'ZDF' => array('id' => 'zdf.de', 'name' => 'ZDF', 'icon' => 'http://i.tvspielfilm.de/tvs/sender/pics/zdf.gif'),</p><p> 'VIVA' => array('id' => 'viva.tv', 'name' => 'VIVA', 'icon' => 'http://i.tvspielfilm.de/tvs/sender/pics/viva.gif'),</p><p> 'N24' => array('id' => 'n24.de', 'name' => 'N24', 'icon' => 'http://i.tvspielfilm.de/tvs/sender/pics/n24.gif'),</p><p> 'PRO7' => array('id' => 'prosieben.de', 'name' => 'ProSieben', 'icon' => 'http://i.tvspielfilm.de/tvs/sender/pics/pro7.gif'),</p><p> 'K1' => array('id' => 'kabel1.de', 'name' => 'KABEL1', 'icon' => 'http://i.tvspielfilm.de/tvs/sender/pics/k1.gif'),</p><p> 'SAT1' => array('id' => 'sat1.de', 'name' => 'SAT.1', 'icon' => 'http://i.tvspielfilm.de/tvs/sender/pics/sat1.gif'),</p><p> 'ARD' => array('id' => 'ard.de', 'name' => 'Das Erste', 'icon' => 'http://i.tvspielfilm.de/tvs/sender/pics/ard.gif')</p><p>);</p><p></p><p>function getURL_saveCache()</p><p>{</p><p> global $getURL_cache;</p><p> file_put_contents('getURL.cache', serialize($getURL_cache));</p><p>}</p><p></p><p>function getURL($url)</p><p>{</p><p> global $getURL_cache;</p><p> if (!$getURL_cache) {</p><p> $getURL_cache = unserialize(file_get_contents('getURL.cache'));</p><p> register_shutdown_function('getURL_saveCache');</p><p> }</p><p> $id = md5($url);</p><p> if (!isset($getURL_cache[$id])) {</p><p> echo "[" . $url . "]\n";</p><p> $ch = curl_init($url);</p><p> curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);</p><p> $res = curl_exec($ch);</p><p> curl_close($ch);</p><p> $getURL_cache[$id] = gzcompress($res);</p><p> } else {</p><p> $res = gzuncompress($getURL_cache[$id]);</p><p> }</p><p> return $res;</p><p>}</p><p></p><p>function unhtmlspecialchars($s)</p><p>{</p><p> $s = str_replace('', ' ', $s);</p><p> $t = html_entity_decode($s);</p><p> $u = "";</p><p> for ($i=0; $i<strlen($t); $i++) {</p><p> if ($t[$i] == "&" && $t[$i+1] == "#") {</p><p> $i+=2;</p><p> $x = "";</p><p> while ($t[$i] != ";" && $i < strlen($t)) {</p><p> $x .= $t[$i];</p><p> $i++;</p><p> }</p><p> $u .= chr($x+0);</p><p> } else {</p><p> $u .= $t[$i];</p><p> }</p><p> }</p><p> return $u;</p><p>}</p><p></p><p>function importProgram($date, $id)</p><p>{</p><p> global $tvData, $channels;</p><p> </p><p> $data = getURL('http://tvspielfilm.msn.de/programm/tagesprogramm?sendungs_id='.$id);</p><p> $data = str_replace("\n", " ", $data);</p><p> $res = array();</p><p></p><p> // channel | <span class="sender">SWR</span></p><p> preg_match('#<span class="sender">([^<]+)</span>#', $data, $m);</p><p> </p><p> if (!isset($channels[strtoupper(trim(unhtmlspecialchars($m[1])))])) return;</p><p> $res['channel'] = $channels[strtoupper(trim(unhtmlspecialchars($m[1])))]['id'];</p><p> </p><p> // date | <span class="tagesprogramm-bold">am</span>:10.Sep</p><p> preg_match('#<span class="tagesprogramm-bold">am</span>:([^&]+)#', $data, $m);</p><p> list($day,$month) = explode('.', $m[1]);</p><p> $monthNames = array('Jan', 'Feb', 'Mrz', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez');</p><p> $month = array_search($month, $monthNames)+1;</p><p> $dmy = sprintf('%04d-%02d-%02d', date('Y', $date), $month, $day);</p><p> </p><p> // start | <span class="stunde">05</span><span class="minute">00</span></p><p> preg_match('#<span class="stunde">([^<]+)</span><span class="minute">([^<]+)</span>#', $data, $m);</p><p> $res['start'] = strtotime($dmy.' '.sprintf('%02d:%02d:00', $m[1], $m[2]));</p><p> </p><p> preg_match('#<span class="tagesprogramm-bold">bis</span>:([0-9:]+)#', $data, $m);</p><p> if (sizeof($m) < 2) {</p><p> $fp = fopen('tmp.html', 'w'); fputs($fp, $data); fclose($fp);</p><p> exit;</p><p> }</p><p> list($hour, $minute) = explode(':', $m[1]);</p><p> </p><p> $res['end'] = strtotime($dmy.' '.sprintf('%02d:%02d:00', $hour, $minute));</p><p> if ($res['end'] < $res['start']) $res['end'] += 24*60*60;</p><p> </p><p> // title | programm-artikel-headline">Treffpunkt Stadion</span></p><p> preg_match('#programm-artikel-headline">([^<]+)</span>#', $data, $m);</p><p> $res['title'] = trim(unhtmlspecialchars($m[1]));</p><p> </p><p> // image | [img]http://i.tvspielfilm.de/img/gen/B/B/HBBBAfmay8G_Pxgen_r_177x117.jpg[/img]</p><p> preg_match('#[img]([^[/img]#', $data, $m);</p><p> $res['image'] = (sizeof($m) == 2) ? trim(unhtmlspecialchars($m[1])) : '';</p><p> </p><p> // type | <span class="c-filmart">Kinder</span></p><p> preg_match('#<span class="c-filmart">([^<]+)</span>#', $data, $m);</p><p> $res['category'] = (sizeof($m) == 2) ? trim(unhtmlspecialchars($m[1])) : '';</p><p> </p><p> // orig-title | <span class="normal-bold">O: Disney's Art Attack, GB1998-2004</span></p><p> preg_match('#<span class="normal-bold">O: ([^<]+)</span>#', $data, $m);</p><p> $res['originalTitle'] = (sizeof($m) == 2) ? trim(unhtmlspecialchars($m[1])) : '';</p><p></p><p> // FSK | <span class="tagesprogramm-bold">FSK</span>:6</span></p><p> preg_match('#<span class="tagesprogramm-bold">FSK</span>:([0-9]+)#', $data, $m);</p><p> $res['fsk'] = (sizeof($m) == 2) ? ($m[1]+0) : '';</p><p> </p><p> // description | <td width="290" class="gross">Verwechslungskomödie (USA 1986). Bibliothekar Joe (Judge Reinhold) verkleidet sich als Polizist und verguckt sich in eine "Kollegin" (Meg Tilly)... In Nebenrollen spielen Harvey Keitel, Joe Mantegna und John Turturro. (Wdh. am 2.3.)</td></p><p> preg_match('#<td width="290" class="gross">([^<]+)</td>#', $data, $m);</p><p> $res['description'] = (sizeof($m) == 2) ? trim(unhtmlspecialchars($m[1])) : 'Keine Beschreibung verfügbar';</p><p> </p><p> // year/country</p><p> preg_match('#([A-Z]*)[, ]*(19[0-9]{2}|200[0-9]{1})#', $res['originalTitle'].' '.$res['description'], $m);</p><p> $res['country'] = (sizeof($m) == 3) ? trim(unhtmlspecialchars($m[1])) : '';</p><p> $res['year'] = (sizeof($m) == 3) ? ($m[2]+0) : '';</p><p> </p><p> // stars </p><p> preg_match('#http://i.tvspielfilm.de/tvs/programm/pics/daumen_26x26_([a-z]+)\.gif#', $data, $m);</p><p> $res['rating'] = (sizeof($m) == 2) ? (($m[1]=='tief') ? 0 : (($m[1]=='quer') ? 1 : (($m[1]=='hoch') ? 3 : ''))) : '';</p><p> // quer, hoch, tief</p><p> </p><p> $tvData[$date][$res['channel']][] = $res;</p><p>}</p><p></p><p>function importDate($date)</p><p>{</p><p> global $channels;</p><p> for ($page=1; $page<100; $page++) {</p><p> $data = getURL('http://tvspielfilm.msn.de/programm/tagesprogramm?sart_id=SP&sart_id=RE&sart_id=SE&sart_id=U&sart_id=KIN&sart_id=SPO&spartentipp=&date='.date('Ymd',$date).'&startzeit=ganztag&sender='.implode('%2C', array_keys($channels)).'&go=1&type=sparten&highlight=&order=sndg.anfangszeit&max=20&page='.$page);</p><p> preg_match_all('#http://tvspielfilm.msn.de/programm/tagesprogramm\?sendungs_id=([0-9]+)#', $data, $m);</p><p> $m = $m[1];</p><p> foreach ($m as $id) importProgram($date, $id);</p><p> if (sizeof($m) < 20) break;</p><p> }</p><p>}</p><p></p><p>echo "load xmltv.dat\n";</p><p>$curDate = strtotime(date('Y-m-d'));</p><p>$tvData = @unserialize(file_get_contents('xmltv.dat'));</p><p>if (is_array($tvData)) foreach (array_keys($tvData) as $date) if ($date < $curDate) unset($tvData[$date]);</p><p>$date = $curDate;</p><p>while ($date <= $curDate+24*60*60*14) {</p><p> if (!isset($tvData[$date])) {</p><p> echo "update day ".date('Y-m-d', $date)."\n";</p><p> importDate($date);</p><p> }</p><p> $date += 24*60*60;</p><p>}</p><p>echo "save xmltv.dat\n";</p><p>file_put_contents('xmltv.dat', serialize($tvData));</p><p></p><p>echo "create TvGuide.xml\n";</p><p>$fp = fopen('TvGuide.xml', 'w');</p><p>fputs($fp, '<?xml version="1.0" encoding="iso-8859-1" ?>'."\n");</p><p>fputs($fp, '<tv>'."\n");</p><p>foreach ($channels as $channel)</p><p>{</p><p> fputs($fp, "\t".'<channel id="'.$channel['id'].'">'."\n");</p><p> fputs($fp, "\t\t".'<display-name>'.htmlspecialchars($channel['name']).'</display-name>'."\n");</p><p> if ($channel['icon']) fputs($fp, "\t\t".'<icon src="'.htmlspecialchars($channel['icon']).'" />'."\n");</p><p> fputs($fp, "\t".'</channel>'."\n");</p><p>}</p><p>foreach ($tvData as $date => $dateData) {</p><p> foreach ($dateData as $channelID => $channelData) {</p><p> foreach ($channelData as $programData) {</p><p> fputs($fp, "\t".'<programme channel="'.htmlspecialchars($channelID).'" start="'.date('YmdHis', $programData['start']).'" stop="'.date('YmdHis', $programData['end']).'">'."\n");</p><p> fputs($fp, "\t\t".'<title>'.htmlspecialchars($programData['title']).'</title>'."\n");</p><p> if ($programData['description']) fputs($fp, "\t\t".'<desc>'.htmlspecialchars($programData['description']).'</desc>'."\n");</p><p> if ($programData['category']) fputs($fp, "\t\t".'<category>'.htmlspecialchars($programData['category']).'</category>'."\n");</p><p> if ($programData['year']) fputs($fp, "\t\t".'<year>'.htmlspecialchars($programData['year']).'</year>'."\n");</p><p> if ($programData['country']) fputs($fp, "\t\t".'<country>'.htmlspecialchars($programData['country']).'</country>'."\n");</p><p> if ($programData['rating'] !== '') fputs($fp, "\t\t".'<star-rating><value>'.$programData['rating'].'/3</value></star-rating>'."\n");</p><p> if ($programData['fsk'] !== '') fputs($fp, "\t\t".'<rating system="FSK"><value>'.$programData['fsk'].'</value></rating>'."\n");</p><p> fputs($fp, "\t".'</programme>'."\n");</p><p> }</p><p> }</p><p>}</p><p>fputs($fp, '</tv>'."\n");</p><p>fclose($fp);</p><p></p><p>echo "done\n";</p><p></p><p>?></p><p>[/code]</p><p></p><p>xmltv.cpp (so you have a xmltv.exe runnable by mediaportal)</p><p>[code]</p><p>#include <stdio.h></p><p>#include <stdlib.h></p><p>#include <string.h></p><p></p><p>int main(int argC, char* argV[])</p><p>{</p><p> for (int i=0; i<argC; i++) if (!stricmp(argV[i], "--configure")) return 0;</p><p> system("xmltv.bat");</p><p> return 0;</p><p>}</p><p>[/code]</p><p></p><p>xmltv.bat</p><p>[code]</p><p>@echo off</p><p>C:\Programme\PHP\PHP.EXE xmltv.php</p><p>[/code]</p><p></p><p>[/code]</p></blockquote><p></p>
[QUOTE="mcbyte, post: 21161"] Here is the code. Its quite beta but maybe it helps someone ;) Needs PHP 5+ xmltv.php: [code] <?php $channels = array( 'RTL' => array('id' => 'rtl.de', 'name' => 'RTL Television', 'icon' => 'http://i.tvspielfilm.de/tvs/sender/pics/rtl.gif'), 'RTL2' => array('id' => 'rtl2.de', 'name' => 'RTL2', 'icon' => 'http://i.tvspielfilm.de/tvs/sender/pics/rtl2.gif'), 'SUPER' => array('id' => 'superrtl.de', 'name' => 'Super RTL', 'icon' => 'http://i.tvspielfilm.de/tvs/sender/pics/ruper.gif'), 'VOX' => array('id' => 'vox.de', 'name' => 'VOX', 'icon' => 'http://i.tvspielfilm.de/tvs/sender/pics/vox.gif'), 'ZDF' => array('id' => 'zdf.de', 'name' => 'ZDF', 'icon' => 'http://i.tvspielfilm.de/tvs/sender/pics/zdf.gif'), 'VIVA' => array('id' => 'viva.tv', 'name' => 'VIVA', 'icon' => 'http://i.tvspielfilm.de/tvs/sender/pics/viva.gif'), 'N24' => array('id' => 'n24.de', 'name' => 'N24', 'icon' => 'http://i.tvspielfilm.de/tvs/sender/pics/n24.gif'), 'PRO7' => array('id' => 'prosieben.de', 'name' => 'ProSieben', 'icon' => 'http://i.tvspielfilm.de/tvs/sender/pics/pro7.gif'), 'K1' => array('id' => 'kabel1.de', 'name' => 'KABEL1', 'icon' => 'http://i.tvspielfilm.de/tvs/sender/pics/k1.gif'), 'SAT1' => array('id' => 'sat1.de', 'name' => 'SAT.1', 'icon' => 'http://i.tvspielfilm.de/tvs/sender/pics/sat1.gif'), 'ARD' => array('id' => 'ard.de', 'name' => 'Das Erste', 'icon' => 'http://i.tvspielfilm.de/tvs/sender/pics/ard.gif') ); function getURL_saveCache() { global $getURL_cache; file_put_contents('getURL.cache', serialize($getURL_cache)); } function getURL($url) { global $getURL_cache; if (!$getURL_cache) { $getURL_cache = unserialize(file_get_contents('getURL.cache')); register_shutdown_function('getURL_saveCache'); } $id = md5($url); if (!isset($getURL_cache[$id])) { echo "[" . $url . "]\n"; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $res = curl_exec($ch); curl_close($ch); $getURL_cache[$id] = gzcompress($res); } else { $res = gzuncompress($getURL_cache[$id]); } return $res; } function unhtmlspecialchars($s) { $s = str_replace('', ' ', $s); $t = html_entity_decode($s); $u = ""; for ($i=0; $i<strlen($t); $i++) { if ($t[$i] == "&" && $t[$i+1] == "#") { $i+=2; $x = ""; while ($t[$i] != ";" && $i < strlen($t)) { $x .= $t[$i]; $i++; } $u .= chr($x+0); } else { $u .= $t[$i]; } } return $u; } function importProgram($date, $id) { global $tvData, $channels; $data = getURL('http://tvspielfilm.msn.de/programm/tagesprogramm?sendungs_id='.$id); $data = str_replace("\n", " ", $data); $res = array(); // channel | <span class="sender">SWR</span> preg_match('#<span class="sender">([^<]+)</span>#', $data, $m); if (!isset($channels[strtoupper(trim(unhtmlspecialchars($m[1])))])) return; $res['channel'] = $channels[strtoupper(trim(unhtmlspecialchars($m[1])))]['id']; // date | <span class="tagesprogramm-bold">am</span>:10.Sep preg_match('#<span class="tagesprogramm-bold">am</span>:([^&]+)#', $data, $m); list($day,$month) = explode('.', $m[1]); $monthNames = array('Jan', 'Feb', 'Mrz', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'); $month = array_search($month, $monthNames)+1; $dmy = sprintf('%04d-%02d-%02d', date('Y', $date), $month, $day); // start | <span class="stunde">05</span><span class="minute">00</span> preg_match('#<span class="stunde">([^<]+)</span><span class="minute">([^<]+)</span>#', $data, $m); $res['start'] = strtotime($dmy.' '.sprintf('%02d:%02d:00', $m[1], $m[2])); preg_match('#<span class="tagesprogramm-bold">bis</span>:([0-9:]+)#', $data, $m); if (sizeof($m) < 2) { $fp = fopen('tmp.html', 'w'); fputs($fp, $data); fclose($fp); exit; } list($hour, $minute) = explode(':', $m[1]); $res['end'] = strtotime($dmy.' '.sprintf('%02d:%02d:00', $hour, $minute)); if ($res['end'] < $res['start']) $res['end'] += 24*60*60; // title | programm-artikel-headline">Treffpunkt Stadion</span> preg_match('#programm-artikel-headline">([^<]+)</span>#', $data, $m); $res['title'] = trim(unhtmlspecialchars($m[1])); // image | [img]http://i.tvspielfilm.de/img/gen/B/B/HBBBAfmay8G_Pxgen_r_177x117.jpg[/img] preg_match('#[img]([^[/img]#', $data, $m); $res['image'] = (sizeof($m) == 2) ? trim(unhtmlspecialchars($m[1])) : ''; // type | <span class="c-filmart">Kinder</span> preg_match('#<span class="c-filmart">([^<]+)</span>#', $data, $m); $res['category'] = (sizeof($m) == 2) ? trim(unhtmlspecialchars($m[1])) : ''; // orig-title | <span class="normal-bold">O: Disney's Art Attack, GB1998-2004</span> preg_match('#<span class="normal-bold">O: ([^<]+)</span>#', $data, $m); $res['originalTitle'] = (sizeof($m) == 2) ? trim(unhtmlspecialchars($m[1])) : ''; // FSK | <span class="tagesprogramm-bold">FSK</span>:6</span> preg_match('#<span class="tagesprogramm-bold">FSK</span>:([0-9]+)#', $data, $m); $res['fsk'] = (sizeof($m) == 2) ? ($m[1]+0) : ''; // description | <td width="290" class="gross">Verwechslungskomödie (USA 1986). Bibliothekar Joe (Judge Reinhold) verkleidet sich als Polizist und verguckt sich in eine "Kollegin" (Meg Tilly)... In Nebenrollen spielen Harvey Keitel, Joe Mantegna und John Turturro. (Wdh. am 2.3.)</td> preg_match('#<td width="290" class="gross">([^<]+)</td>#', $data, $m); $res['description'] = (sizeof($m) == 2) ? trim(unhtmlspecialchars($m[1])) : 'Keine Beschreibung verfügbar'; // year/country preg_match('#([A-Z]*)[, ]*(19[0-9]{2}|200[0-9]{1})#', $res['originalTitle'].' '.$res['description'], $m); $res['country'] = (sizeof($m) == 3) ? trim(unhtmlspecialchars($m[1])) : ''; $res['year'] = (sizeof($m) == 3) ? ($m[2]+0) : ''; // stars preg_match('#http://i.tvspielfilm.de/tvs/programm/pics/daumen_26x26_([a-z]+)\.gif#', $data, $m); $res['rating'] = (sizeof($m) == 2) ? (($m[1]=='tief') ? 0 : (($m[1]=='quer') ? 1 : (($m[1]=='hoch') ? 3 : ''))) : ''; // quer, hoch, tief $tvData[$date][$res['channel']][] = $res; } function importDate($date) { global $channels; for ($page=1; $page<100; $page++) { $data = getURL('http://tvspielfilm.msn.de/programm/tagesprogramm?sart_id=SP&sart_id=RE&sart_id=SE&sart_id=U&sart_id=KIN&sart_id=SPO&spartentipp=&date='.date('Ymd',$date).'&startzeit=ganztag&sender='.implode('%2C', array_keys($channels)).'&go=1&type=sparten&highlight=&order=sndg.anfangszeit&max=20&page='.$page); preg_match_all('#http://tvspielfilm.msn.de/programm/tagesprogramm\?sendungs_id=([0-9]+)#', $data, $m); $m = $m[1]; foreach ($m as $id) importProgram($date, $id); if (sizeof($m) < 20) break; } } echo "load xmltv.dat\n"; $curDate = strtotime(date('Y-m-d')); $tvData = @unserialize(file_get_contents('xmltv.dat')); if (is_array($tvData)) foreach (array_keys($tvData) as $date) if ($date < $curDate) unset($tvData[$date]); $date = $curDate; while ($date <= $curDate+24*60*60*14) { if (!isset($tvData[$date])) { echo "update day ".date('Y-m-d', $date)."\n"; importDate($date); } $date += 24*60*60; } echo "save xmltv.dat\n"; file_put_contents('xmltv.dat', serialize($tvData)); echo "create TvGuide.xml\n"; $fp = fopen('TvGuide.xml', 'w'); fputs($fp, '<?xml version="1.0" encoding="iso-8859-1" ?>'."\n"); fputs($fp, '<tv>'."\n"); foreach ($channels as $channel) { fputs($fp, "\t".'<channel id="'.$channel['id'].'">'."\n"); fputs($fp, "\t\t".'<display-name>'.htmlspecialchars($channel['name']).'</display-name>'."\n"); if ($channel['icon']) fputs($fp, "\t\t".'<icon src="'.htmlspecialchars($channel['icon']).'" />'."\n"); fputs($fp, "\t".'</channel>'."\n"); } foreach ($tvData as $date => $dateData) { foreach ($dateData as $channelID => $channelData) { foreach ($channelData as $programData) { fputs($fp, "\t".'<programme channel="'.htmlspecialchars($channelID).'" start="'.date('YmdHis', $programData['start']).'" stop="'.date('YmdHis', $programData['end']).'">'."\n"); fputs($fp, "\t\t".'<title>'.htmlspecialchars($programData['title']).'</title>'."\n"); if ($programData['description']) fputs($fp, "\t\t".'<desc>'.htmlspecialchars($programData['description']).'</desc>'."\n"); if ($programData['category']) fputs($fp, "\t\t".'<category>'.htmlspecialchars($programData['category']).'</category>'."\n"); if ($programData['year']) fputs($fp, "\t\t".'<year>'.htmlspecialchars($programData['year']).'</year>'."\n"); if ($programData['country']) fputs($fp, "\t\t".'<country>'.htmlspecialchars($programData['country']).'</country>'."\n"); if ($programData['rating'] !== '') fputs($fp, "\t\t".'<star-rating><value>'.$programData['rating'].'/3</value></star-rating>'."\n"); if ($programData['fsk'] !== '') fputs($fp, "\t\t".'<rating system="FSK"><value>'.$programData['fsk'].'</value></rating>'."\n"); fputs($fp, "\t".'</programme>'."\n"); } } } fputs($fp, '</tv>'."\n"); fclose($fp); echo "done\n"; ?> [/code] xmltv.cpp (so you have a xmltv.exe runnable by mediaportal) [code] #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argC, char* argV[]) { for (int i=0; i<argC; i++) if (!stricmp(argV[i], "--configure")) return 0; system("xmltv.bat"); return 0; } [/code] xmltv.bat [code] @echo off C:\Programme\PHP\PHP.EXE xmltv.php [/code] [/code] [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
MediaPortal 1
Development
General Development (no feature request here!)
XMLTV Updater Germany / TV-Spielfilm
Contact us
RSS
Top
Bottom