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
}\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
--- /dev/null
+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
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();
}
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();
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);
}
- 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;
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++ ) {
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");
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);
}
}
}