From 900b366df7bbe56e1c10b4c9fa8c243015bd2b65 Mon Sep 17 00:00:00 2001 From: Jan-Pascal van Best Date: Thu, 29 Mar 2012 22:11:19 +0200 Subject: [PATCH] Add suffix to tvgids channels (second try) --- src/main/java/org/vanbest/xmltv/Channel.java | 32 ++++++++------ src/main/java/org/vanbest/xmltv/Config.java | 23 ++++++++-- src/main/java/org/vanbest/xmltv/RTL.java | 4 +- src/main/java/org/vanbest/xmltv/TvGids.java | 3 +- .../java/org/vanbest/xmltv/TvGidsChannel.java | 42 +++++++++---------- .../java/org/vanbest/xmltv/XmlTvWriter.java | 2 +- 6 files changed, 61 insertions(+), 45 deletions(-) diff --git a/src/main/java/org/vanbest/xmltv/Channel.java b/src/main/java/org/vanbest/xmltv/Channel.java index 35d3e7d..b26ba9d 100644 --- a/src/main/java/org/vanbest/xmltv/Channel.java +++ b/src/main/java/org/vanbest/xmltv/Channel.java @@ -14,10 +14,14 @@ public class Channel { List icons; List urls; protected boolean enabled = true; - private String suffix = ""; + int source; - protected Channel(String id) { + public final static int CHANNEL_SOURCE_TVGIDS=1; + public final static int CHANNEL_SOURCE_RTL=2; + + protected Channel(int source, String id) { this.id = id; + this.source = source; names = new ArrayList(); icons = new ArrayList(); urls = new ArrayList(); @@ -27,21 +31,28 @@ public class Channel { return names.get(0); } - static Channel getChannel(String id, String name) { - Channel c = new Channel(id); + static Channel getChannel(int source, String id, String name) { + Channel c = new Channel(source, id); c.names.add(name); return c; } - static Channel getChannel(String id, String name, String iconUrl) { - Channel c = new Channel(id); + static Channel getChannel(int source, String id, String name, String iconUrl) { + Channel c = new Channel(source, id); c.names.add(name); c.icons.add(new Icon(iconUrl)); return c; } public String getXmltvChannelId() { - return id+suffix; + switch (source) { + case CHANNEL_SOURCE_TVGIDS: + return id+".tvgids.nl"; + case CHANNEL_SOURCE_RTL: + return id; + default: + return id; + } } public void serialize(XMLStreamWriter writer) throws XMLStreamException { @@ -75,11 +86,6 @@ public class Channel { } public String toString() { - return "Channel " + id + " (" + defaultName() + ")"; + return "Channel " + source + "::" + id + " (" + defaultName() + ")"; } - - public void setSuffix(String suffix) { - this.suffix = suffix; - } - } \ No newline at end of file diff --git a/src/main/java/org/vanbest/xmltv/Config.java b/src/main/java/org/vanbest/xmltv/Config.java index fc99642..86c88b2 100644 --- a/src/main/java/org/vanbest/xmltv/Config.java +++ b/src/main/java/org/vanbest/xmltv/Config.java @@ -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")) { diff --git a/src/main/java/org/vanbest/xmltv/RTL.java b/src/main/java/org/vanbest/xmltv/RTL.java index 891ede2..69fff39 100644 --- a/src/main/java/org/vanbest/xmltv/RTL.java +++ b/src/main/java/org/vanbest/xmltv/RTL.java @@ -137,7 +137,7 @@ public class RTL extends AbstractEPGSource implements EPGSource { String name = (String) j.get(0); String icon = icon_url+id+".gif"; - Channel c = Channel.getChannel(id, name, icon); + Channel c = Channel.getChannel(Channel.CHANNEL_SOURCE_RTL, id, name, icon); result.add(c); } @@ -145,7 +145,7 @@ public class RTL extends AbstractEPGSource implements EPGSource { } private String genericChannelId(String jsonid) { - return jsonid.replaceAll("^Z", "")+xmltv_channel_suffix; // remove initial Z + return jsonid.replaceAll("^Z", ""); // remove initial Z } /* diff --git a/src/main/java/org/vanbest/xmltv/TvGids.java b/src/main/java/org/vanbest/xmltv/TvGids.java index 43f2efb..2032d37 100644 --- a/src/main/java/org/vanbest/xmltv/TvGids.java +++ b/src/main/java/org/vanbest/xmltv/TvGids.java @@ -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); } diff --git a/src/main/java/org/vanbest/xmltv/TvGidsChannel.java b/src/main/java/org/vanbest/xmltv/TvGidsChannel.java index 1526384..578c70b 100644 --- a/src/main/java/org/vanbest/xmltv/TvGidsChannel.java +++ b/src/main/java/org/vanbest/xmltv/TvGidsChannel.java @@ -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; - } } diff --git a/src/main/java/org/vanbest/xmltv/XmlTvWriter.java b/src/main/java/org/vanbest/xmltv/XmlTvWriter.java index 33318bf..b2cb893 100644 --- a/src/main/java/org/vanbest/xmltv/XmlTvWriter.java +++ b/src/main/java/org/vanbest/xmltv/XmlTvWriter.java @@ -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"); -- 2.39.5