]> www.vanbest.org Git - tv_grab_nl_java/commitdiff
Add suffix to tvgids channels (second try)
authorJan-Pascal van Best <janpascal@vanbest.org>
Thu, 29 Mar 2012 20:11:19 +0000 (22:11 +0200)
committerJan-Pascal van Best <janpascal@vanbest.org>
Thu, 29 Mar 2012 20:11:19 +0000 (22:11 +0200)
src/main/java/org/vanbest/xmltv/Channel.java
src/main/java/org/vanbest/xmltv/Config.java
src/main/java/org/vanbest/xmltv/RTL.java
src/main/java/org/vanbest/xmltv/TvGids.java
src/main/java/org/vanbest/xmltv/TvGidsChannel.java
src/main/java/org/vanbest/xmltv/XmlTvWriter.java

index 35d3e7dd2baac4d3da4e590e3052f6c5965c17b6..b26ba9d5a24a0a3bacca042167779ceb5286e985 100644 (file)
@@ -14,10 +14,14 @@ public class Channel {
        List<Icon> icons;\r
        List<String> urls;\r
        protected boolean enabled = true;\r
-       private String suffix = "";\r
+       int source;\r
        \r
-       protected Channel(String id) {\r
+       public final static int CHANNEL_SOURCE_TVGIDS=1;\r
+       public final static int CHANNEL_SOURCE_RTL=2;\r
+       \r
+       protected Channel(int source, String id) {\r
                this.id = id;\r
+               this.source = source;\r
                names = new ArrayList<String>();\r
                icons = new ArrayList<Icon>();\r
                urls = new ArrayList<String>();\r
@@ -27,21 +31,28 @@ public class Channel {
                return names.get(0);\r
        }\r
        \r
-       static Channel getChannel(String id, String name) {\r
-               Channel c = new Channel(id);\r
+       static Channel getChannel(int source, String id, String name) {\r
+               Channel c = new Channel(source, 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(id);\r
+       static Channel getChannel(int source, String id, String name, String iconUrl) {\r
+               Channel c = new Channel(source, id);\r
                c.names.add(name);\r
                c.icons.add(new Icon(iconUrl));\r
                return c;\r
        }\r
        \r
        public String getXmltvChannelId() {\r
-               return id+suffix;\r
+               switch (source) {\r
+               case CHANNEL_SOURCE_TVGIDS:\r
+                       return id+".tvgids.nl";\r
+               case CHANNEL_SOURCE_RTL:\r
+                       return id;\r
+               default:\r
+                       return id;\r
+               }\r
        }\r
         \r
        public void serialize(XMLStreamWriter writer) throws XMLStreamException {\r
@@ -75,11 +86,6 @@ public class Channel {
        }\r
        \r
     public String toString() {\r
-       return "Channel " + id + " (" + defaultName() + ")";\r
+       return "Channel " + source + "::" + id + " (" + defaultName() + ")";\r
     }\r
-\r
-       public void setSuffix(String suffix) {\r
-               this.suffix  = suffix;\r
-       }\r
-\r
 }
\ No newline at end of file
index fc9964239beb52c176ab5d5ea69a997b6d4b5b7c..86c88b265e6b9dae1b14cca8036cf4a3e56586e9 100644 (file)
@@ -49,7 +49,7 @@ public class Config {
        
        public static int LOG_DEFAULT = LOG_INFO;
        
-       private final static int CURRENT_FILE_FORMAT=1;
+       private final static int CURRENT_FILE_FORMAT=2;
 
        String project_version;
        
@@ -125,7 +125,8 @@ public class Config {
                out.println("nice-time-milliseconds: " + niceMilliseconds);
                for(Channel c: channels) {
                        // FIXME: handle multiple channels names, icons and urls
-                       out.print("channel: " + c.id +
+                       out.print("channel: " + c.source + 
+                                       ":" + c.id +
                                        ": " + (c.enabled?"enabled":"disabled") +
                                        ": " + escape(c.defaultName()));
                        if (!c.icons.isEmpty()) {
@@ -198,13 +199,13 @@ public class Config {
                                        // System.out.println("Adding channel " + parts + " in file format " + fileformat);
                                        switch(fileformat) {
                                        case 0:
-                                               c = Channel.getChannel(parts.get(1), parts.get(2));
+                                               c = Channel.getChannel(Channel.CHANNEL_SOURCE_TVGIDS, parts.get(1), parts.get(2));
                                                if (parts.size()>3) {
                                                        c.addIcon(parts.get(3));
                                                }
                                                break;
                                        case 1:
-                                               c = Channel.getChannel(parts.get(1), parts.get(3));
+                                               c = Channel.getChannel(Channel.CHANNEL_SOURCE_TVGIDS, parts.get(1), parts.get(3));
                                                if (parts.size()>4) {
                                                        c.addIcon(parts.get(4));
                                                }
@@ -216,6 +217,20 @@ public class Config {
                                                } else {
                                                        System.out.println("Error in config file, unknown channel status \"" + parts.get(2) + "\", should be enabled or disabled");
                                                }
+                                               break;
+                                       case 2:
+                                               c = Channel.getChannel(Integer.parseInt(parts.get(1)), parts.get(2), parts.get(4));
+                                               if (parts.size()>5) {
+                                                       c.addIcon(parts.get(5));
+                                               }
+                                               value = parts.get(3);
+                                               if (value.equals("enabled")) {
+                                                       c.setEnabled(true); 
+                                               } else if (value.equals("disabled")) {
+                                                       c.setEnabled(false); 
+                                               } else {
+                                                       System.out.println("Error in config file, unknown channel status \"" + parts.get(3) + "\", should be enabled or disabled");
+                                               }
                                        }
                                        result.channels.add(c);
                                } else if (key.equals("category")) {
index 891ede22d4b3f037f07970846a800de2adc719ff..69fff39a2f55dd4dcb0012ddd3e050c9829daa5b 100644 (file)
@@ -137,7 +137,7 @@ public class RTL extends AbstractEPGSource implements EPGSource  {
                        String name = (String) j.get(0);\r
                        String icon = icon_url+id+".gif";\r
                        \r
-                       Channel c = Channel.getChannel(id, name, icon);\r
+                       Channel c = Channel.getChannel(Channel.CHANNEL_SOURCE_RTL, id, name, icon);\r
                        result.add(c);\r
                }\r
 \r
@@ -145,7 +145,7 @@ public class RTL extends AbstractEPGSource implements EPGSource  {
        }\r
        \r
        private String genericChannelId(String jsonid) {\r
-               return jsonid.replaceAll("^Z", "")+xmltv_channel_suffix; // remove initial Z\r
+               return jsonid.replaceAll("^Z", ""); // remove initial Z\r
        }\r
        \r
        /*\r
index 43f2efb926f0f659e3c6f6c572dc283479a08e4b..2032d3738c87f47ae635c963570ba4c10f416b17 100644 (file)
@@ -116,8 +116,7 @@ public class TvGids extends AbstractEPGSource implements EPGSource {
                        int id = zender.getInt("id");
                        String name = org.apache.commons.lang.StringEscapeUtils.unescapeHtml(zender.getString("name"));
                        String icon = "http://tvgidsassets.nl/img/channels/53x27/" + id + ".png"; 
-                       Channel c = Channel.getChannel(Integer.toString(id), name, icon); 
-                       c.setSuffix(".tvgids.nl");
+                       Channel c = Channel.getChannel(Channel.CHANNEL_SOURCE_TVGIDS, Integer.toString(id), name, icon); 
                        result.add(c);
                }
 
index 1526384d2b68c2edbbf32994bd968fa6bd8a8c22..578c70bbe39ba466ffc7c2e0ee3063f8a332e668 100644 (file)
@@ -16,31 +16,27 @@ package org.vanbest.xmltv;
   The full license text can be found in the LICENSE file.
 */
 
-public class TvGidsChannel {
-       int id;
-    String name;
-    String shortName;
-       String iconUrl;
-       boolean selected;
-       
-    public TvGidsChannel(int id, String name, String shortName) {
-       this.id = id;
-       this.name = name;
-       this.shortName = shortName;
+public class TvGidsChannel extends Channel {
+
+       protected TvGidsChannel(String id) {
+               super(CHANNEL_SOURCE_TVGIDS, id);
        }
-    public String toString() {
-       return "id: " + id + "; name: " + name + "; shortName: " + shortName;
-    }
-    
-    public String getChannelId() {
+
+       static Channel getChannel(String id, String name) {
+               Channel c = new TvGidsChannel(id);
+               c.names.add(name);
+               return c;
+       }
+
+       static Channel getChannel(String id, String name, String iconUrl) {
+               Channel c = new TvGidsChannel(id);
+               c.names.add(name);
+               c.icons.add(new Icon(iconUrl));
+               return c;
+       }
+
+    public String getXmltvChannelId() {
        return id+".tvgids.nl";
     }
     
-    public void fixup() {
-                this.name = org.apache.commons.lang.StringEscapeUtils.unescapeHtml(name);
-                this.shortName = org.apache.commons.lang.StringEscapeUtils.unescapeHtml(shortName);
-    }
-       public void setIconUrl(String url) {
-               this.iconUrl = url;
-       }
 }
index 33318bf31ef48bc2a67475b97b7464b5817c56e7..b2cb8933a4d0f131220603d1dd236285b35c5f56 100644 (file)
@@ -77,7 +77,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.id);
+                               writer.writeAttribute("channel", ""+p.channel.getXmltvChannelId());
                                writeln();                              
                                
                                writer.writeStartElement("title");