Engelstalig Nederlandstalig


View statistics

Laatst bijgewerkt: 24 augustus 2011

tv-gids tool

geschiedenis

Op Internet bestaan een aantal websites die de TV-gids voor Nederlandse zenders bevatten. De meeste van deze websites bieden de TV-gids aan in een formaat dat ik niet handig vind. Daarom heb ik een klein Python-script geschreven om de TV-gids van een dergelijk website te halen en een TV-gids te genereren in mijn eigen gewenste formaat.

In januari 2004 heb ik deze scripts omgezet in een Java applicatie voor Java 2 Standard Edition (J2SE) versie 1.4. Vanaf versie 3.0 is Java 5 vereist.

Mijn formaat voor de TV-gids is een enkele lijst waarin alle programma's zijn gesorteerd op aanvangstijd. Verder worden mijn favoriete programma's en films op een duidelijke manier gemarkeerd.

download

Iedereen die wil mag deze tool downloaden en gebruiken. Klik hier om versie 3.2 van de tool te downloaden.

Het zip-bestand bevat de Java bronbestanden inclusief een build.xml bestand om het project met Apache Ant te bouwen. Het bevat ook een gebouwde versie voor het geval je de tool niet zelf wenst te bouwen.

Het zip-bestand bevat de volgende bestanden:

configuration.txt
Dit bestand bevat de configuratie voor het tool. In dit bestand kunnen de start- en eindtijd van de gids worden opgegeven, samen met de tijdzone die gebruikt wordt om tijden te lezen en te formatteren. Ook kunnen de namen van de zenders en genres worden opgegeven die moeten worden getoond in de TV-gids. Tot slot kunnen hier de namen van je favoriete programma's worden gespecificeerd in dit bestand.
tvguide.css
Dit is de style sheet dat gebruikt wordt door het gegenereerde HTML-bestand. Kopieer dit bestand naar de directory waar het HTML-bestand wordt gegenereerd.
build.xml
Het build-bestand om de applicatie te bouwen met Apache Ant.
src/tvguide/Configuration.java
Deze klasse representeert de configuratie van het tool. De constructor leest het configuratiebestand in.
src/tvguide/WwwProgramSource.java
Deze klasse is verantwoordelijk voor het downloaden van de programmalijst van een website. In deze klasse kun je opgeven voor welke TV-kanalen de programmalijst moet worden gedownload. (In een toekomstige versie zal de lijst van TV-kanalen in een apart bestandje kunnen worden opgegeven.)
src/tvguide/TVProgram.java
Deze klasse representeert een TV-programma.
src/tvguide/Main.java
Deze klasse bevat de main method die wordt aangeroepen als de tool wordt gestart. Het interpreteert de argumenten en gebruikt de andere klasses om de TV-gids te genereren.
src/tvguide/StartTimeComparator.java
Deze klasse implementeert het Comparator interface. Het wordt gebruikt om TVPrograms te sorteren op aanvangstijd.
src/tvguide/HtmlGenerator.java
Deze klasse genereert het HTML-bestand.
src/tvguide/TimeConverter.java
Deze klasse converteert tijden in het formaat hh:mm naar java.util.Date instanties.

Als je besluit de tool niet zelf te bouwen, dan kun je de src directory en zijn inhoud te verwijderen.

systeemeisen

Om de tool uit te kunnen voeren is een Java 5 (of hoger) Java Run-Time vereist. Deze kunnen worden gedownload van Sun's website.

Om de tool zelf te bouwen is Apache Ant versie 1.6 (of hoger) vereist. Apache Ant kan worden gedownload van de website van Apache Software Foundation.

bouwinstructies

Om de tool te bouwen met Ant, type je het volgende commando in op een command prompt:
ant
Om het Jar-bestand te genereren, type je het commando: ant dist

In het geval dat je de tool niet zelf wilt bouwen, kun je het Jar-bestand dat in het zip-bestand zit gebruiken.

de tool starten

Om de tool te starten, type je het volgende commando in op de command prompt:
java -jar tvguide.jar configuration.txt tvguide.html

Als de tool gestart wordt met de verkeerde argumenten, dan zal de tool een korte gebruiksaanwijzing tonen in het Engels.

Als je buiten Nederland woont, dan is het makkelijk om de tijdzone waarin je woont op te geven. De tijden in de gids worden dan vertaald naar jouw tijdzone. Bijvoorbeeld, voor Engeland kan het argument -timezone Europe/London worden toegevoegd of wijzig de tijdzone in het configuratiebestand.

Het is ook mogelijk om een start- en eindtijd op te geven voor de TV gids. Om alle programma's vanaf 6 uur 's avonds te laten zien kan het argument -start 18:00 worden toegevoegd of wijzig de starttijd in het configuratiebestand.

Let op: de tijden 0:00 t/m 5:59 worden opgevat als tijden van de nacht van vandaag op morgen! Tijden vanaf 6:00 t/m 23:59 zijn van vandaag.

voorbeelduitvoer

Klik hier om een voorbeeld te zien van een TV-gids gegenereerd door de tool.

versies

versiedatumopmerkingen
3.221 augustus 2010 URL gewijzigd voor ophalen kanalen. De oude URL verwees naar een advertentie.
3.115 augustus 2010 Bij het downloaden van de hoofdpagina van tvgids.nl identificeert het programma zich als de Chrome web browser. Dit is nodig omdat anders een pagina in een onbekend formaat wordt geretourneerd.
3.03 januari 2008 Java 5 wordt nu gebruikt. Reguliere expressies aangepast voor de nieuwe layout van tvgids.nl en nu.nl. Ook worden proxies ondersteund.
2.628 augustus 2005 NullPointerException opgelost die veroorzaakt werd door een ontbrekende start- of eindtijd van een programma.
2.518 augustus 2005 Highlights in het configuratie-bestand worden toegepast op zowel de titel als de genres van een programma. Hierdoor kunnen bijvoorbeeld alle films en comedies worden gemarkeerd.
2.414 augustus 2005 Configuratie kan worden gespecificeerd in een bestand.
2.313 augustus 2005 Genres toegevoegd aan de TV gids.
2.211 augustus 2005 Starttijd, eindtijd en tijdzone kunnen optioneel worden opgegeven als argumenten.
2.13 augustus 2005 Probleem opgelost dat voor ieder kanaal het eerste programma "null" als kanaal had.
2.03 augustus 2005 Highlights-bestand moet worden gespecificeerd als argument van de tool.

tot slot

Ik heb deze tool gemaakt in een aantal avonden, dus verwacht er niet te veel van. Desalniettemin bewijst deze tool al ruim drie jaar lang zijn nut voor mij, iedere dag!

Mocht je vragen of opmerkingen hebben over de tool, neem dan gerust contact met me op.