]> www.vanbest.org Git - tv_grab_nl_java/commitdiff
Implement kijkwijzer for RTL source. Fixes #1
authorJan-Pascal van Best <janpascal@vanbest.org>
Wed, 2 May 2012 14:05:09 +0000 (16:05 +0200)
committerJan-Pascal van Best <janpascal@vanbest.org>
Wed, 2 May 2012 14:05:09 +0000 (16:05 +0200)
src/main/java/org/vanbest/xmltv/AbstractEPGSource.java
src/main/java/org/vanbest/xmltv/RTL.java
src/main/java/org/vanbest/xmltv/TvGids.java

index 31eb9306ace1e77e4691920d2c7fd1536f632601..3d59f8ad1132e9fa73c433bff0e3d5fb73b043ed 100644 (file)
@@ -80,4 +80,30 @@ public abstract class AbstractEPGSource implements EPGSource {
        public void clearCache() {
                cache.clear(sourceId);
        }
+
+       List<String> parseKijkwijzer(String s) {
+               List<String> result = new ArrayList<String>();
+               for (int i=0; i<s.length(); i++) {
+                       char c = s.charAt(i);
+                       switch(c) {
+                       case 'a':result.add("Angst"); break;
+                       case 'd':result.add("Discriminatie"); break;
+                       case 's':result.add("Seks"); break;
+                       case 'h':result.add("Drugs/Alcohol"); break;
+                       case 'g':result.add("Geweld"); break;
+                       case 't':result.add("Grof taalgebruik"); break;
+                       case '1':result.add("Voor alle leeftijden"); break;
+                       case '2':result.add("Afgeraden voor kinderen jonger dan 6 jaar"); break;
+                       case '9':result.add("Afgeraden voor kinderen jonger dan 9 jaar"); break;
+                       case '3':result.add("Afgeraden voor kinderen jonger dan 12 jaar"); break;
+                       case '4':result.add("Afgeraden voor kinderen jonger dan 16 jaar"); break;
+                       case '5': break; // Lijkt op een foutje van RTL, bedoeld wordt wrsch "12 jaar en ouder". Wordt op RTL tvgids niet weegegeven.
+                       default: if (!config.quiet) {
+                               logger.warn("Unknown kijkwijzer character: " + c + " in string " + s);
+                               }
+                       }
+               }
+               return result;
+       }
+
 }
\ No newline at end of file
index b8e7a958bdad4bcaaaba53d41adaa8f5cbed7ffd..da2384fc35bb2d898d68d048bab4e61cb96e10d1 100644 (file)
@@ -50,6 +50,8 @@ import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;\r
 \r
 import org.apache.commons.io.FileUtils;\r
+import org.apache.commons.lang.StringUtils;\r
+import org.apache.log4j.Level;\r
 import org.apache.log4j.Logger;\r
 import org.vanbest.xmltv.EPGSource.Stats;\r
 import org.w3c.dom.DOMException;\r
@@ -281,7 +283,20 @@ public class RTL extends AbstractEPGSource implements EPGSource  {
                        prog.endTime = parseTime(e.getTextContent(), dateStatus, DateStatus.END_TIME);\r
                } else if (tag.equals("omroep")) {\r
                } else if (tag.equals("kijkwijzer")) {\r
-                       //System.out.println("Kijkwijzer: \"" + e.getTextContent() + "\"");\r
+                       logger.trace(prog.toString());\r
+                       logger.trace("Kijkwijzer: \"" + e.getTextContent() + "\"");\r
+                       String kijkwijzer = e.getTextContent();\r
+                       List<String> list = parseKijkwijzer(kijkwijzer);\r
+                       if (config.joinKijkwijzerRatings) {\r
+                               // mythtv doesn't understand multiple <rating> tags\r
+                               prog.addRating("kijkwijzer", StringUtils.join(list, ","));\r
+                       } else {\r
+                               for(String rating: list) {\r
+                                       prog.addRating("kijkwijzer", rating);\r
+                               }\r
+                       }\r
+                       logger.trace("Kijkwijzer: \"" + StringUtils.join(list, ",") + "\"");\r
+                       // TODO add kijkwijzer icons?\r
                } else if (tag.equals("presentatie")) {\r
                        // A; A en B; A, B, C en D\r
                        String[] presentatoren = e.getTextContent().split(", | en ");\r
@@ -421,6 +436,8 @@ public class RTL extends AbstractEPGSource implements EPGSource  {
         */\r
        public static void main(String[] args) throws FileNotFoundException {\r
                debug = true;\r
+        Logger.getRootLogger().setLevel(Level.TRACE);\r
+\r
                Config config = Config.getDefaultConfig();\r
                config.niceMilliseconds = 50;\r
                RTL rtl = new RTL(2, config);\r
index 04f127c046fa9fe7e98ced59e6ece56345a8738b..fa4f73cd15d2091def2b69bed331077d951645b4 100644 (file)
@@ -107,30 +107,6 @@ public class TvGids extends AbstractEPGSource implements EPGSource {
                return new URL(s.toString());
        }
 
-       List<String> parseKijkwijzer(String s) {
-               List<String> result = new ArrayList<String>();
-               for (int i=0; i<s.length(); i++) {
-                       char c = s.charAt(i);
-                       switch(c) {
-                       case 'a':result.add("Angst"); break;
-                       case 'd':result.add("Discriminatie"); break;
-                       case 's':result.add("Seks"); break;
-                       case 'h':result.add("Drugs/Alcohol"); break;
-                       case 'g':result.add("Geweld"); break;
-                       case 't':result.add("Grof taalgebruik"); break;
-                       case '1':result.add("Voor alle leeftijden"); break;
-                       case '2':result.add("Afgeraden voor kinderen jonger dan 6 jaar"); break;
-                       case '9':result.add("Afgeraden voor kinderen jonger dan 9 jaar"); break;
-                       case '3':result.add("Afgeraden voor kinderen jonger dan 12 jaar"); break;
-                       case '4':result.add("Afgeraden voor kinderen jonger dan 16 jaar"); break;
-                       default: if (!config.quiet) {
-                               logger.warn("Unknown kijkwijzer character: " + c + " in string " + s);
-                               }
-                       }
-               }
-               return result;
-       }
-
        /* (non-Javadoc)
         * @see org.vanbest.xmltv.EPGSource#getChannels()
         */