]> www.vanbest.org Git - tv_grab_nl_java/commitdiff
Fix tests for new RTL implementation; fix subtitles in many cases in RTL
authorJan-Pascal van Best <janpascal@vanbest.org>
Wed, 15 Jan 2014 20:58:51 +0000 (21:58 +0100)
committerJan-Pascal van Best <janpascal@vanbest.org>
Wed, 15 Jan 2014 20:58:51 +0000 (21:58 +0100)
src/main/java/org/vanbest/xmltv/RTL.java
src/test/java/org/vanbest/xmltv/RTLTest.java

index 18ecd5a4b35be6e602d477b65084174eb6f85a2e..d49055f7c08deacdb81d5246f9e0dcd5e27168f1 100644 (file)
@@ -167,14 +167,27 @@ public class RTL extends AbstractEPGSource implements EPGSource {
         String abstractKey = schedule.optString("abstract_key");
         if(abstractKey!=null) {
             JSONObject abstrac = abstracts.get(abstractKey);
-            prog.addTitle(abstrac.getString("name"));
-            logger.debug("\""+prog.getFirstTitle()+"\"");
+            String name = abstrac.getString("name");
+            if(name.endsWith(":")) name=name.substring(0, name.length()-1);
+            name=name.trim();
+            prog.addTitle(name);
+            logger.trace("\""+prog.getFirstTitle()+"\"");
         }
         String episodeKey = schedule.optString("episode_key");
         if(episodeKey!=null) {
             JSONObject episode = episodes.get(episodeKey);
             String s = episode.optString("name");
-            if(s!=null && !s.isEmpty()) prog.addSecondaryTitle(s);
+            if(s!=null && !s.isEmpty()) {
+                String title = prog.getFirstTitle();
+                if(title!=null && s.startsWith(title)) {
+                    s=s.substring(title.length(), s.length()).trim();
+                    if(s.startsWith(":")) s=s.substring(1,s.length()).trim();
+                    if(s.startsWith("-")) s=s.substring(1,s.length()).trim();
+                    if(s.startsWith("\"")) s=s.substring(1,s.length()).trim();
+                    if(s.endsWith("\"")) s=s.substring(0,s.length()-1).trim();
+                }
+                prog.addSecondaryTitle(s);
+            }
             s = episode.optString("episode_number");
             if(s!=null && !s.isEmpty()) prog.addEpisode(s, "onscreen");
             s = episode.optString("synopsis");
@@ -252,7 +265,7 @@ public class RTL extends AbstractEPGSource implements EPGSource {
             String station=schedule.getString("station");
             if (!channelMap.containsKey(station)) {
                 if (!config.quiet)
-                   logger.info("Skipping programmes for channel " + station);
+                   logger.trace("Skipping programmes for channel " + station);
                 continue;
             }
             result.add(createProgramme(schedule, channelMap));
index 07f0ff3c01f94be44c88eb28d69e1f2ce08974fe..b79764daf154abf9d254518b52aa159b1d97ce29 100644 (file)
@@ -3,6 +3,7 @@ package org.vanbest.xmltv;
 import static org.junit.Assert.*;
 
 import java.util.Calendar;
+import java.util.GregorianCalendar;
 import java.util.List;
 
 import org.junit.AfterClass;
@@ -36,16 +37,16 @@ public class RTLTest {
        public void testgetChannels() {
                fetchChannels();
 
-               // there should be a least 20 channels
-               assertTrue("There should be at least 20 channels from rtl.nl",
-                               channels.size() >= 20);
+               // there should be a least 4 channels
+               assertTrue("There should be at least 4 channels from rtl.nl",
+                               channels.size() >= 4);
                // there should be an "RTL 4" channel
                boolean foundRTL4 = false;
                for (Channel c : channels) {
-                       if (c.defaultName().equals("RTL 4")) {
+                       if (c.defaultName().equals("RTL4")) {
                                foundRTL4 = true;
-                               assertFalse("RTL 4 channel should have at least one icon",
-                                               c.icons.isEmpty());
+                                // Not supplied any more 20140115
+                               //assertFalse("RTL4 channel should have at least one icon", c.icons.isEmpty());
                        }
                        assertEquals("All channels should have RTL.nl source id",
                                        RTL_SOURCE_ID, c.source);
@@ -61,104 +62,107 @@ public class RTLTest {
        }
 
        @Test
-       public void testFindGTSTRerun() throws Exception {
-               fetchChannels();
-               Channel rtl4 = null;
-               for (Channel c : channels) {
-                       if (c.defaultName().equals("RTL 4")) {
-                               rtl4 = c;
-                                break;
-                       }
-               }
-               assertNotNull("Should be able to find RTL 4 channel", rtl4);
-
-               List<Programme> today = rtl.getProgrammes(rtl4, 0);
-               assertTrue("Expect at leat 10 programmes for a day", today.size() >= 10);
-
-               Calendar now = Calendar.getInstance();
-               if (now.get(Calendar.MONTH) <= Calendar.MAY
-                               || now.get(Calendar.MONTH) >= Calendar.SEPTEMBER) {
-                       int offset;
-                       switch (now.get(Calendar.DAY_OF_WEEK)) {
-                       case Calendar.SATURDAY:
-                               offset = 2;
-                               break;
-                       case Calendar.SUNDAY:
-                               offset = 1;
-                               break;
-                       default:
-                               offset = 0;
-                       }
-                       int rerun;
-                       switch (now.get(Calendar.DAY_OF_WEEK)) {
-                       case Calendar.FRIDAY:
-                               rerun = 3;
-                               break;
-                       case Calendar.SATURDAY:
-                               rerun = 3;
-                               break;
-                       case Calendar.SUNDAY:
-                               rerun = 2;
-                               break;
-                       default:
-                               rerun = 1;
-                       }
-                       List<Programme> first = rtl.getProgrammes(rtl4, offset);
-                       Programme gtstOriginal = null;
-                       for (Programme p : first) {
-                               if (p.getFirstTitle().matches("Goede Tijden.*")) {
-                                       if (p.startTime.getHours() >= 19) {
-                                               gtstOriginal = p;
-                                               break;
-                                       }
-                               }
-                       }
-                       assertNotNull(
-                                       "Should have a programme called Goede Tijden, Slechte Tijden after 19:00 on date with offset "
-                                                       + offset + " for today", gtstOriginal);
-                       assertNotNull("GTST should have a description",
-                                       gtstOriginal.descriptions);
-                       assertTrue("GTST should have at least one description",
-                                       gtstOriginal.descriptions.size() > 0);
-                       assertNotNull(
-                                       "GTST should have at least one non-empty description",
-                                       gtstOriginal.descriptions.get(0).title);
-                       assertFalse("GTST should have at least one non-empty description",
-                                       gtstOriginal.descriptions.get(0).title.isEmpty());
-
-                        /* Not provided any more
-                       assertNotNull("GTST should have kijkwijzer information",
-                                       gtstOriginal.ratings);
-                       assertTrue("GTST should have at least one kijkwijzer ratings",
-                                       gtstOriginal.ratings.size() >= 1);
-                       assertNotNull("GTST rating should have kijkwijzer system",
-                                       gtstOriginal.ratings.get(0).system);
-                       assertTrue("GTST rating should have kijkwijzer system filled in",
-                                       gtstOriginal.ratings.get(0).system.matches(".*ijkwijz.*"));
-                       assertNotNull("GTST rating should have value",
-                                       gtstOriginal.ratings.get(0).value);
-                       assertFalse("GTST rating should have value",
-                                       gtstOriginal.ratings.get(0).value.isEmpty());
-                        */
-
-                       List<Programme> reruns = rtl.getProgrammes(rtl4, rerun);
-                       Programme gtstRerun = null;
-                       for (Programme p : reruns) {
-                               if (p.getFirstTitle().matches("Goede Tijden.*")) {
-                                       if (p.startTime.getHours() <= 15) {
-                                               gtstRerun = p;
-                                               break;
-                                       }
-                               }
-                       }
-                       assertNotNull(
-                                       "Should have a programme called Goede Tijden, Slechte Tijden before 15:00 on date with offset "
-                                                       + rerun, gtstRerun);
-
-                       assertEquals(
-                                       "GTST rerun should have the same description as the original",
-                                       gtstRerun.descriptions.get(0).title,
-                                       gtstOriginal.descriptions.get(0).title);
-               }
-       }
+    public void testFindGTSTRerun() throws Exception {
+        fetchChannels();
+        Channel rtl4 = null;
+        for (Channel c : channels) {
+            if (c.defaultName().equals("RTL4")) {
+                rtl4 = c;
+                break;
+            }
+        }
+        assertNotNull("Should be able to find RTL 4 channel", rtl4);
+
+        List<Programme> today = rtl.getProgrammes(rtl4, 0);
+        assertTrue("Expect at leat 10 programmes for a day", today.size() >= 10);
+
+        GregorianCalendar now = new GregorianCalendar();
+        if (now.get(Calendar.MONTH) <= Calendar.MAY || now.get(Calendar.MONTH) >= Calendar.SEPTEMBER) {
+            int offset;
+            switch (now.get(Calendar.DAY_OF_WEEK)) {
+            case Calendar.SATURDAY:
+                offset = 2;
+                break;
+            case Calendar.SUNDAY:
+                offset = 1;
+                break;
+            default:
+                offset = 0;
+            }
+            int rerun;
+            switch (now.get(Calendar.DAY_OF_WEEK)) {
+            case Calendar.FRIDAY:
+                rerun = 3;
+                break;
+            case Calendar.SATURDAY:
+                rerun = 3;
+                break;
+            case Calendar.SUNDAY:
+                rerun = 2;
+                break;
+            default:
+                rerun = 1;
+            }
+            List<Programme> first = rtl.getProgrammes(rtl4, offset);
+            Calendar origCalendar = now;
+            origCalendar.add(Calendar.DAY_OF_MONTH, offset);
+            Programme gtstOriginal = null;
+            for (Programme p : first) {
+                if (p.getFirstTitle().matches("Goede Tijden.*")) {
+                    Calendar cal = new GregorianCalendar();
+                    cal.setTime(p.startTime);
+                    if (cal.get(Calendar.DAY_OF_MONTH)==origCalendar.get(Calendar.DAY_OF_MONTH)
+                        && cal.get(Calendar.HOUR_OF_DAY) >= 19) {
+                        gtstOriginal = p;
+                        break;
+                    }
+                }
+            }
+            assertNotNull("Should have a programme called Goede Tijden, Slechte Tijden after 19:00 on date with offset "
+                + offset + " for today", gtstOriginal);
+            assertNotNull("GTST should have a description", gtstOriginal.descriptions);
+            assertTrue("GTST should have at least one description",
+                    gtstOriginal.descriptions.size() > 0);
+            assertNotNull("GTST should have at least one non-empty description",
+                    gtstOriginal.descriptions.get(0).title);
+            assertFalse("GTST should have at least one non-empty description",
+                    gtstOriginal.descriptions.get(0).title.isEmpty());
+
+            assertNotNull("GTST should have kijkwijzer information",
+                    gtstOriginal.ratings);
+            assertTrue("GTST should have at least one kijkwijzer ratings",
+                    gtstOriginal.ratings.size() >= 1);
+            assertNotNull("GTST rating should have kijkwijzer system",
+                    gtstOriginal.ratings.get(0).system);
+            assertTrue("GTST rating should have kijkwijzer system filled in",
+                    gtstOriginal.ratings.get(0).system.matches(".*ijkwijz.*"));
+            assertNotNull("GTST rating should have value",
+                    gtstOriginal.ratings.get(0).value);
+            assertFalse("GTST rating should have value",
+                    gtstOriginal.ratings.get(0).value.isEmpty());
+
+            List<Programme> reruns = rtl.getProgrammes(rtl4, rerun);
+            Calendar rerunCalendar = now;
+            rerunCalendar.add(Calendar.DAY_OF_MONTH, rerun);
+            Programme gtstRerun = null;
+            for (Programme p : reruns) {
+                if (p.getFirstTitle().matches("Goede Tijden.*")) {
+                    Calendar cal = new GregorianCalendar();
+                    cal.setTime(p.startTime);
+                    if (cal.get(Calendar.DAY_OF_MONTH)==rerunCalendar.get(Calendar.DAY_OF_MONTH)
+                        && p.startTime.getHours() <= 15) {
+                        gtstRerun = p;
+                        break;
+                    }
+                }
+            }
+            assertNotNull("Should have a programme called Goede Tijden, Slechte Tijden before 15:00 on date with offset "
+                + rerun, gtstRerun);
+            System.out.println("GTST original: "+gtstOriginal.toString());
+            System.out.println("GTST rerun: "+gtstRerun.toString());
+            assertEquals("GTST rerun should have the same description as the original",
+                    gtstRerun.descriptions.get(0).title,
+                    gtstOriginal.descriptions.get(0).title);
+        }
+    }
 }