From: Jan-Pascal van Best Date: Wed, 28 Mar 2012 19:51:09 +0000 (+0200) Subject: Nog wat geklust aan RTL X-Git-Tag: 0.9.0~16 X-Git-Url: http://www.vanbest.org/gitweb/?a=commitdiff_plain;h=8e35a9924cf13ab497bc3b4da6ca30b268ed6d4a;p=tv_grab_nl_java Nog wat geklust aan RTL --- diff --git a/pom.xml b/pom.xml index 7b79576..48be73d 100644 --- a/pom.xml +++ b/pom.xml @@ -26,6 +26,11 @@ commons-lang 2.6 + + org.hsqldb + hsqldb + 2.2.8 + diff --git a/src/main/java/org/vanbest/xmltv/RTL.java b/src/main/java/org/vanbest/xmltv/RTL.java index 45804a8..430cd8e 100644 --- a/src/main/java/org/vanbest/xmltv/RTL.java +++ b/src/main/java/org/vanbest/xmltv/RTL.java @@ -6,6 +6,11 @@ import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.sql.Statement; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -35,6 +40,7 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.vanbest.xmltv.EPGSource.Stats; +import org.w3c.dom.DOMException; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; @@ -49,6 +55,13 @@ public class RTL extends AbstractEPGSource implements EPGSource { private static final String xmltv_channel_suffix = ".rtl.nl"; private static final int MAX_PROGRAMMES_PER_DAY = 99999; + private Connection db; + + String[] xmlKeys = {"zendernr", "pgmsoort", "genre", "bijvnwlanden", "ondertiteling", "begintijd", "titel", + "site_path", "wwwadres", "presentatie", "omroep", "eindtijd", "inhoud", "tt_inhoud", "alginhoud", "afl_titel", "kijkwijzer" }; + + Map xmlKeyMap = new HashMap(); + class RTLException extends Exception { public RTLException(String s) { super(s); @@ -57,6 +70,29 @@ public class RTL extends AbstractEPGSource implements EPGSource { public RTL(Config config) { super(config); + try { + db = DriverManager.getConnection("jdbc:hsqldb:file:testdb", "SA", ""); + Statement stat = db.createStatement(); + StringBuilder s = new StringBuilder(); + s.append("CREATE TABLE IF NOT EXISTS prog (id VARCHAR(32) primary key, "); + int i=0; + for( String key: xmlKeys) { + if(i>0) s.append(", "); + xmlKeyMap.put(key, i+1); + s.append(key); + s.append(" VARCHAR(4096)"); + i++; + } + s.append(");"); + System.out.println(s); + stat.execute(s.toString()); + stat.execute("TRUNCATE TABLE prog"); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + System.exit(1); + db = null; + } } public List getChannels() { @@ -128,11 +164,26 @@ public class RTL extends AbstractEPGSource implements EPGSource { Element root = xml.getDocumentElement(); if (root.hasAttributes()) { System.out.println("Unknown attributes for RTL detail root node"); + } + StringBuilder sql = new StringBuilder("INSERT INTO prog (id"); + StringBuilder sql2= new StringBuilder(") values (?"); + for(String key:xmlKeys) { + sql.append(","); + sql.append(key); + sql2.append(","); + sql2.append("?"); + } + sql.append(sql2); + sql.append(");"); + // System.out.println(sql.toString()); + PreparedStatement stat = db.prepareStatement(sql.toString()); + stat.setString(1, id); + for(String key:xmlKeys) { + } NodeList nodes = root.getChildNodes(); for( int i=0; i channels = rtl.getChannels(); @@ -262,7 +344,8 @@ public class RTL extends AbstractEPGSource implements EPGSource { writer.writeCharacters("\n"); writer.writeStartElement("tv"); for(Channel c: channels) {c.serialize(writer);} - List programmes = rtl.getProgrammes1(channels.subList(0, 3), 0, true); + //List programmes = rtl.getProgrammes1(channels.subList(0, 13), 0, true); + List programmes = rtl.getProgrammes1(channels, 0, true); for(Programme p: programmes) {p.serialize(writer);} writer.writeEndElement(); writer.writeEndDocument();