]> www.vanbest.org Git - tv_grab_nl_java/commitdiff
Added fetch-channel-logos configuration option (fixes #12)
authorJan-Pascal van Best <janpascal@vanbest.org>
Tue, 11 Jun 2013 12:33:53 +0000 (14:33 +0200)
committerJan-Pascal van Best <janpascal@vanbest.org>
Tue, 11 Jun 2013 15:29:31 +0000 (17:29 +0200)
src/main/java/org/vanbest/xmltv/Channel.java
src/main/java/org/vanbest/xmltv/Config.java
src/main/java/org/vanbest/xmltv/Horizon.java
src/main/java/org/vanbest/xmltv/Main.java
src/main/java/org/vanbest/xmltv/RTL.java
src/main/java/org/vanbest/xmltv/TvGids.java

index 13638ef4f357764a9ecf8724e21240cd894c0f46..68e600aa807a0d7eedb8f6fb25a52cde0b387184 100644 (file)
@@ -34,7 +34,9 @@ public class Channel {
        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
+                if (iconUrl != null) {\r
+                   c.icons.add(new Icon(iconUrl));\r
+                }\r
                return c;\r
        }\r
 \r
@@ -46,7 +48,7 @@ public class Channel {
                return EPGSourceFactory.newInstance().getChannelSourceName(source);\r
        }\r
 \r
-       public void serialize(XMLStreamWriter writer) throws XMLStreamException {\r
+       public void serialize(XMLStreamWriter writer, boolean writeLogos) throws XMLStreamException {\r
                writer.writeStartElement("channel");\r
                writer.writeAttribute("id", getXmltvChannelId());\r
                for (String name : names) {\r
@@ -55,9 +57,11 @@ public class Channel {
                        writer.writeCharacters(name);\r
                        writer.writeEndElement();\r
                }\r
-               for (Icon i : icons) {\r
-                       i.serialize(writer);\r
-               }\r
+                if (writeLogos) {\r
+                    for (Icon i : icons) {\r
+                            i.serialize(writer);\r
+                    }\r
+                }\r
                for (String url : urls) {\r
                        writer.writeStartElement("url");\r
                        writer.writeCharacters(url);\r
@@ -79,4 +83,4 @@ public class Channel {
        public String toString() {\r
                return "Channel " + source + "::" + id + " (" + defaultName() + ")";\r
        }\r
-}
\ No newline at end of file
+}\r
index 09e583474d51ddf549c30701225489a04e1af6c5..1bbd9ebc34e438f4a501955960f6059853b568c0 100644 (file)
@@ -1,7 +1,7 @@
 package org.vanbest.xmltv;
 
 /*
- Copyright (c) 2012 Jan-Pascal van Best <janpascal@vanbest.org>
+ Copyright (c) 2012,2013 Jan-Pascal van Best <janpascal@vanbest.org>
 
  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
@@ -45,6 +45,7 @@ public class Config {
        public String cacheDbHandle;
        public String cacheDbUser;
        public String cacheDbPassword;
+        public boolean fetchLogos;
 
        // not stored (yet)
        public boolean joinKijkwijzerRatings = true;
@@ -81,6 +82,7 @@ public class Config {
                result.setCacheFile(cachefile);
                result.cacheDbUser = "SA";
                result.cacheDbPassword = "";
+               result.fetchLogos= true;
                return result;
        }
 
@@ -159,6 +161,7 @@ public class Config {
                out.println("cache-db-handle: " + escape(cacheDbHandle));
                out.println("cache-db-user: " + escape(cacheDbUser));
                out.println("cache-db-password: " + escape(cacheDbPassword));
+               out.println("fetch-channel-logos: " + (fetchLogos?"yes":"no"));
                out.println("nice-time-milliseconds: " + niceMilliseconds);
                for (Channel c : channels) {
                        // FIXME: handle multiple channels names, icons and urls
@@ -331,6 +334,11 @@ public class Config {
                                        result.cacheDbPassword = parts.get(1);
                                } else if (key.equals("nice-time-milliseconds")) {
                                        result.niceMilliseconds = Integer.parseInt(parts.get(1));
+                               } else if (key.equals("fetch-channel-logos")) {
+                                        String value = parts.get(1).toLowerCase();
+                                       result.fetchLogos = (value.equals("yes") ||
+                                          value.equals("true") ||
+                                          value.equals("1")) ;
                                } else {
                                        logger.error("Unknown key " + key + " in config file!");
                                }
index 31f49ef91b4e2ae1cd741ecf44f8e23316416218..149d40620a5975254da96d03df5a7323a3bab10b 100644 (file)
@@ -125,15 +125,15 @@ public class Horizon extends AbstractEPGSource implements EPGSource {
                        // Use the largest available station logo as icon
                        JSONArray images = station.getJSONArray("images");
                        String icon = "";
-                       int maxSize = 0;
-                       for( int j=0; j<images.size(); j++) {
-                               JSONObject image = images.getJSONObject(j);
-                               if (image.getString("assetType").startsWith("station-logo") &&
-                                               image.getInt("width")>maxSize) {
-                                       icon = image.getString("url");
-                                       maxSize = image.getInt("width");
-                               }
-                       }
+                        int maxSize = 0;
+                        for( int j=0; j<images.size(); j++) {
+                                JSONObject image = images.getJSONObject(j);
+                                if (image.getString("assetType").startsWith("station-logo") &&
+                                                image.getInt("width")>maxSize) {
+                                        icon = image.getString("url");
+                                        maxSize = image.getInt("width");
+                                }
+                        }
                        Channel c = Channel.getChannel(getId(), Long.toString(id), name,
                                        icon);
                        result.add(c);
@@ -325,7 +325,7 @@ public class Horizon extends AbstractEPGSource implements EPGSource {
                        // List<Channel> my_channels = channels;
                        List<Channel> my_channels = channels.subList(0, 5);
                        for (Channel c : my_channels) {
-                               c.serialize(writer);
+                               c.serialize(writer, true);
                        }
                        writer.flush();
                        for(int day=0; day<5; day++) {
index 6f77b7c114e704743db54c981c00a0ea6ade93a0..d042d939b48dbf4d75e3cdddc65585f9ff95b8aa 100644 (file)
@@ -1,7 +1,7 @@
 package org.vanbest.xmltv;
 
 /*
- Copyright (c) 2012 Jan-Pascal van Best <janpascal@vanbest.org>
+ Copyright (c) 2012,2013 Jan-Pascal van Best <janpascal@vanbest.org>
 
  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
@@ -119,7 +119,7 @@ public class Main {
 
                for (Channel c : config.channels)
                        if (c.enabled)
-                               c.serialize(writer);
+                               c.serialize(writer, config.fetchLogos);
 
                for (int day = offset; day < offset + days; day++) {
                        if (!config.quiet)
index 5d59a057838f46eadba88e005231a8dccd78226c..ed1e09b6bf963441d47455a45431a7e776255510 100644 (file)
@@ -166,8 +166,7 @@ public class RTL extends AbstractEPGSource implements EPGSource {
                        JSONArray j = (JSONArray) o.get(k);\r
                        String id = genericChannelId(k.toString());\r
                        String name = (String) j.get(0);\r
-                       String icon = icon_url + id + ".gif";\r
-\r
+                        String icon = icon_url + id + ".gif";\r
                        Channel c = Channel.getChannel(getId(), id, name, icon);\r
                        result.add(c);\r
                }\r
@@ -497,7 +496,7 @@ public class RTL extends AbstractEPGSource implements EPGSource {
                        writer.writeCharacters("\n");\r
                        writer.writeStartElement("tv");\r
                        for (Channel c : channels) {\r
-                               c.serialize(writer);\r
+                               c.serialize(writer, true);\r
                        }\r
                        writer.flush();\r
                        // List<Programme> programmes =\r
index f315089b8fbbf48aca877b30a401b05c4eb7dfc9..0c7a6a5d68cf8258f06e147175040ec91f818247 100644 (file)
@@ -140,8 +140,8 @@ 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";
+                        String icon = "http://tvgidsassets.nl/img/channels/53x27/" + id
+                                    + ".png";
                        Channel c = Channel.getChannel(getId(), Integer.toString(id), name,
                                        icon);
                        result.add(c);
@@ -445,7 +445,7 @@ public class TvGids extends AbstractEPGSource implements EPGSource {
                        // List<Channel> my_channels = channels;
                        List<Channel> my_channels = channels.subList(0, 15);
                        for (Channel c : my_channels) {
-                               c.serialize(writer);
+                               c.serialize(writer, true);
                        }
                        writer.flush();
                        List<Programme> programmes = gids.getProgrammes(my_channels, 2);