]> www.vanbest.org Git - tv_grab_nl_java/commitdiff
Finish refactoring Channel, compiles and seems to work ok now
authorJan-Pascal van Best <janpascal@vanbest.org>
Sat, 24 Mar 2012 22:35:37 +0000 (23:35 +0100)
committerJan-Pascal van Best <janpascal@vanbest.org>
Sat, 24 Mar 2012 22:35:37 +0000 (23:35 +0100)
src/main/java/org/vanbest/xmltv/Channel.java
src/main/java/org/vanbest/xmltv/Icon.java [new file with mode: 0644]
src/main/java/org/vanbest/xmltv/Main.java
src/main/java/org/vanbest/xmltv/Programme.java
src/main/java/org/vanbest/xmltv/TvGids.java
src/main/java/org/vanbest/xmltv/XmlTvWriter.java

index 4857561423a8a86464d9e08446313fcf358d509c..f80ab6f121c6ca6521acbf8a46a7324a9d46b7a5 100644 (file)
@@ -13,9 +13,10 @@ public class Channel {
        List<String> names; // at least one name is obligatory\r
        List<Icon> icons;\r
        List<String> urls;\r
-       protected boolean selected;\r
+       protected boolean selected = true;\r
        \r
-       protected Channel() {\r
+       protected Channel(String id) {\r
+               this.id = id;\r
                names = new ArrayList<String>();\r
                icons = new ArrayList<Icon>();\r
                urls = new ArrayList<String>();\r
@@ -26,13 +27,13 @@ public class Channel {
        }\r
        \r
        static Channel getChannel(String id, String name) {\r
-               Channel c = new Channel();\r
+               Channel c = new Channel(id);\r
                c.names.add(name);\r
                return c;\r
        }\r
 \r
        static Channel getChannel(String id, String name, String iconUrl) {\r
-               Channel c = new Channel();\r
+               Channel c = new Channel(id);\r
                c.names.add(name);\r
                c.icons.add(new Icon(iconUrl));\r
                return c;\r
diff --git a/src/main/java/org/vanbest/xmltv/Icon.java b/src/main/java/org/vanbest/xmltv/Icon.java
new file mode 100644 (file)
index 0000000..e6cd5f1
--- /dev/null
@@ -0,0 +1,27 @@
+package org.vanbest.xmltv;\r
+\r
+import javax.xml.stream.XMLStreamException;\r
+import javax.xml.stream.XMLStreamWriter;\r
+\r
+public class Icon {\r
+       final static int UNKNOWN_DIMENSION=-1;\r
+       String url;\r
+       int width = UNKNOWN_DIMENSION;\r
+       int height = UNKNOWN_DIMENSION;\r
+\r
+       public Icon(String url) {\r
+               this.url = url;\r
+       }\r
+\r
+       public void serialize(XMLStreamWriter writer) throws XMLStreamException {\r
+               writer.writeStartElement("icon");\r
+               writer.writeAttribute("src", url);\r
+               if(width != UNKNOWN_DIMENSION) {\r
+                       writer.writeAttribute("width", Integer.toString(width));\r
+               }\r
+               if(height!= UNKNOWN_DIMENSION) {\r
+                       writer.writeAttribute("height", Integer.toString(height));\r
+               }\r
+               writer.writeEndElement();\r
+       }\r
+}\r
index 39ad63e61242227b5d5432be6624815a8eef19a6..c31f0dea45340e96a8305c8c06b9519803d7e6b3 100644 (file)
@@ -76,10 +76,9 @@ public class Main {
                        if (!config.quiet) System.out.print("Fetching information for day " + day);
                        Set<Programme> programmes = new HashSet<Programme>();
                        for(Channel c: config.channels) {
+                               if (!c.selected) continue;
                                if (!config.quiet) System.out.print(".");
-                               ArrayList<TvGidsChannel> cs = new ArrayList<TvGidsChannel>(2);
-                               cs.add(c);
-                               Set<Programme> p = gids.getProgrammes(cs, day, true);
+                               Set<Programme> p = gids.getProgrammes(c, day, true);
                                writer.writePrograms(p);
                                writer.flush();
                        }
@@ -107,8 +106,8 @@ public class Main {
        public void configure() throws IOException {
                TvGids gids = new TvGids(config);
                
-               Set<Integer> oldChannels = new HashSet<Integer>();
-               for (TvGidsChannel c: config.channels) {
+               Set<String> oldChannels = new HashSet<String>();
+               for (Channel c: config.channels) {
                        oldChannels.add(c.id);
                }
                List<Channel> channels = gids.getChannels();
index de8dce36b758b7dd80f870166c31eb9dbb62b26c..21c7e0256be5ea5b579b80033be1c0ed5ecd3043 100644 (file)
@@ -119,7 +119,7 @@ public class Programme {
          String highlight_afbeelding;
          String highlight_content;
          ProgrammeDetails details = null;
-         TvGidsChannel channel = null;
+         Channel channel = null;
 
          public void fixup(Config config) {
                 this.titel = org.apache.commons.lang.StringEscapeUtils.unescapeHtml(titel);
index 6d33c995604265d3d7b0d46fcc76554b99d54467..ee79ed869cc8a2f472bd05fa29fb2524969c366a 100644 (file)
@@ -130,14 +130,14 @@ public class TvGids {
                
        }
        
-       public static URL programmeUrl(List<TvGidsChannel> channels, int day) throws Exception {
+       public static URL programmeUrl(List<Channel> channels, int day) throws Exception {
                StringBuilder s = new StringBuilder(programme_base_url);
                if (channels.size() < 1) {
                        throw new Exception("should have at least one channel");
                }
                s.append("?channels=");
                boolean first = true;
-               for(TvGidsChannel i: channels) {
+               for(Channel i: channels) {
                        if (first) {
                                s.append(i.id);
                                first = false;
@@ -164,16 +164,23 @@ public class TvGids {
                s.append("/");
                return new URL(s.toString());
        }
+       
+       // Convenience method
+       public Set<Programme> getProgrammes(Channel channel, int day, boolean fetchDetails) throws Exception {
+               ArrayList<Channel> list = new ArrayList<Channel>(2);
+               list.add(channel);
+               return getProgrammes(list, day, fetchDetails);
+       }
                
-       public Set<Programme> getProgrammes(List<TvGidsChannel> channels, int day, boolean fetchDetails) throws Exception {
+       public Set<Programme> getProgrammes(List<Channel> channels, int day, boolean fetchDetails) throws Exception {
                Set<Programme> result = new HashSet<Programme>();
                URL url = programmeUrl(channels, day);
 
                JSONObject jsonObject = fetchJSON(url);  
                //System.out.println( jsonObject );  
                
-               for( TvGidsChannel c: channels) {
-                       JSON ps = (JSON) jsonObject.get(""+c.id);
+               for(Channel c: channels) {
+                       JSON ps = (JSON) jsonObject.get(c.id);
                        if ( ps.isArray() ) {
                                JSONArray programs = (JSONArray) ps;
                                for( int i=0; i<programs.size(); i++ ) {
index d56635fa224be216b7da7f38fc84a371c16d5f3e..6375b469c14bd2990a52ce69bccca95be5fa769b 100644 (file)
@@ -76,7 +76,7 @@ public class XmlTvWriter {
                        writer.writeStartElement("programme");
                                writer.writeAttribute("start", df.format(p.datum_start));
                                writer.writeAttribute("stop", df.format(p.datum_end));
-                               writer.writeAttribute("channel", ""+p.channel.getChannelId());
+                               writer.writeAttribute("channel", ""+p.channel.id);
                                writeln();                              
                                
                                writer.writeStartElement("title");
@@ -208,7 +208,7 @@ public class XmlTvWriter {
                                                                case '4':writer.writeCharacters("Afgeraden voor kinderen jonger dan 16 jaar"); break;
                                                                default: if (!config.quiet) {
                                                                        System.out.println("Unknown kijkwijzer character: " + p.details.kijkwijzer);
-                                                                       System.out.println("    for show " + p.titel + " at channel " + p.channel.name + " at " + p.datum_start);
+                                                                       System.out.println("    for show " + p.titel + " at channel " + p.channel.defaultName() + " at " + p.datum_start);
                                                                }
                                                                }
                                                        }