Dit is hoe Mythportal.be jullie van een up-to-date XML programmagids voorziet.
Wij hebben onze eigen grabber geschreven aangezien er, naar onze mening, geen goede grabber beschikbaar was. De bestaande grabbers hadden allen wel een of andere beperking.
Onze grabber is geschreven in PHP en zet de programmagids van teveblad.be om in een XML bestand.
Al naargelang het aantal geactiveerde kanalen en de snelheid van de website duurt dit tussen de 15 en 45 minuten.
Om het mijzelf makkelijk te maken is alles gebaseerd op de configuratie van de grabber.
Als er bijvoorbeeld een kanaal extra geactiveerd wordt, heeft dat automatisch zijn weerslag op de kanalenlijst, icoontjes, enz...
Onze grabber heeft een aantal voordelen ten opzichte van andere grabbers:
Zoals je in de bovenstaande screenshot kan zien is alle informatie beschikbaar:
Jaja, er zitten een aantal bugs is. Of te zeggen, ruwe kantjes...
Kanaal Z en doorlopende herhalingen.
Kanaal Z herhaalt al zijn uitzendingen. Het laatste programma in de programmagids is meestal "Doorlopende Herhalingen". Indien de eindtijd van dit programma voor de starttijd is, dan wordt er uiteraard verondersteld dat het programma de dag nadien pas stopt. Dit is correct.
(Heel) soms is de eindtijd helaas ook een dag later, maar onder teveblad.be geen datum voorziet, is dat niet vast te stellen. Vb:
Doorlopende herhalingen van 19:00h - 19:30h. De grabber verondersteld dat het programma 30 minuten duurt. In werkelijkheid duurt dit programma 24 uur en 30 minuten. De gids vermeld dit programma niet meer de dag nadien, dus controleren is onmogelijk.
Waarschijnlijk is de "oplossing" om de gegevens te vergelijken met gegevens uit een anderen bron.
Geëncapsuleerde programma's.
Soms wordt er op teveblad.be een extra programma gedeginiëerd om een type aan te duiden. vb:
16:00 - 18:00 National Geographic Junior
16:00 - 16:30 Let’s Get Inventin
16:30 - 17:00 ...
Dit wordt in XML omgezet op exact dezelfde manier als het er staat.
De MythTV scheduler zal dergelijke "conflicting programmes" detecteren en de eerste (National Geographic Junior) verwijderen. Dit is meestal het gewenste.
Programma's zonder eindtijd
Sommige programma's hebben geen eindtijd, vb:
00.00 - ??:?? Herhalingen
Daarna komen de programma's (met exacte begin- en eindtijden) die herhaald worden. Deze "hoofdingprogramma's" zonder eindtijd, worden niet omgezet naar XML, hetgeen meestal gewenst is.
Speciale karakters
De nieuwe versie van de parser is veel beter is het omzetten van speciale karakters naar correcte UTF-8 representaties.
Het probleem is dat de inputtext niet altijd correcte HTML is, daarom worden dergelijke karakters in een eerste fase omgezet naar HTML. De tweede fase is de eigenlijke conversie naar UTF-8.
Mocht je toch ergens een karakter tegenkomen dat niet correct is, gelieve het dan te laten weten. Het is erg belangrijk dat je ook even zegt om welk karakter het precies gaat.
In de toekomst willen zij onze grabber veel inteligenter maken.
Zo zal er rekening gehouden worden met meerdere informatiebronnen om meer zenders te kunnen aanbieden, maar ook om redundantie te creëren.
Verder zal er een mogelijkheid voorzien worden om zenders te combineren. (Zoals bijvoorbeeld Ketnet en Canvas, of voor zenders die niet de volledige dag uitzenden.)
Hoe dat allemaal in zijn werk zal gaan ligt nog niet vast, maar je zal het wel horen als het zo ver is...