From e6f2a0065b37104f8e36a236758f168a682b30d4 Mon Sep 17 00:00:00 2001 From: Jan-Pascal van Best Date: Sun, 25 Mar 2012 20:48:44 +0200 Subject: [PATCH] Try keeping enabled flags in config file --- src/main/java/org/vanbest/xmltv/Channel.java | 7 +++- src/main/java/org/vanbest/xmltv/Config.java | 36 ++++++++++++++------ src/main/java/org/vanbest/xmltv/Main.java | 20 +++++------ 3 files changed, 42 insertions(+), 21 deletions(-) diff --git a/src/main/java/org/vanbest/xmltv/Channel.java b/src/main/java/org/vanbest/xmltv/Channel.java index f80ab6f..c3f1340 100644 --- a/src/main/java/org/vanbest/xmltv/Channel.java +++ b/src/main/java/org/vanbest/xmltv/Channel.java @@ -13,7 +13,7 @@ public class Channel { List names; // at least one name is obligatory List icons; List urls; - protected boolean selected = true; + protected boolean enabled = true; protected Channel(String id) { this.id = id; @@ -64,4 +64,9 @@ public class Channel { public void addIcon(String url) { icons.add(new Icon(url)); } + + public void setEnabled(boolean b) { + this.enabled = b; + + } } \ 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 06f7d3f..0eb0560 100644 --- a/src/main/java/org/vanbest/xmltv/Config.java +++ b/src/main/java/org/vanbest/xmltv/Config.java @@ -117,11 +117,10 @@ public class Config { out.println("cache-file: " + escape(cacheFile.getPath())); out.println("nice-time-milliseconds: " + niceMilliseconds); for(Channel c: channels) { - if (!c.selected) { - out.print("#"); - } // FIXME: handle multiple channels names, icons and urls - out.print("channel: " + c.id + ": " + escape(c.defaultName())); + out.print("channel: " + c.id + + ": " + (c.enabled?"enabled":"disabled") + + ": " + escape(c.defaultName())); if (!c.icons.isEmpty()) { out.print(" : " + escape(c.icons.get(0).url)); } @@ -182,17 +181,34 @@ public class Config { while(true) { String s = reader.readLine(); if(s==null) break; + //System.out.println(s); if (!s.contains(":")) continue; if (s.startsWith("#")) continue; List parts = splitLine(s); - if (parts.get(0).toLowerCase().equals("channel")) { - Channel c = Channel.getChannel(parts.get(1), parts.get(2)); - if (parts.size()>3) { - c.addIcon(parts.get(3)); + switch (parts.get(0).toLowerCase()) { + case "channel": + Channel c = null; + System.out.println("Adding channel " + parts + " in file format " + fileformat); + switch(fileformat) { + case 0: + c = Channel.getChannel(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)); + if (parts.size()>4) { + c.addIcon(parts.get(4)); + } + switch(parts.get(2)) { + case "enabled": c.setEnabled(true); break; + case "disabled": c.setEnabled(false); break; + default: System.out.println("Unknown channel status \"" + parts.get(2) + "\", should be enabled or disabled"); + } } result.channels.add(c); - } - switch (parts.get(0).toLowerCase()) { + break; case "category" : result.cattrans.put(parts.get(1), parts.get(2)); break; diff --git a/src/main/java/org/vanbest/xmltv/Main.java b/src/main/java/org/vanbest/xmltv/Main.java index c31f0de..571d407 100644 --- a/src/main/java/org/vanbest/xmltv/Main.java +++ b/src/main/java/org/vanbest/xmltv/Main.java @@ -76,7 +76,7 @@ public class Main { if (!config.quiet) System.out.print("Fetching information for day " + day); Set programmes = new HashSet(); for(Channel c: config.channels) { - if (!c.selected) continue; + if (!c.enabled) continue; if (!config.quiet) System.out.print("."); Set p = gids.getProgrammes(c, day, true); writer.writePrograms(p); @@ -120,42 +120,42 @@ public class Main { boolean selected = oldChannels.contains(c.id); System.out.print("add channel " + c.id + " (" + c.defaultName() + ") [[y]es,[n]o,[a]ll,[none],[k]eep selection (default=" + (selected?"yes":"no") + ")] "); if (keep) { - c.selected = selected; + c.enabled = selected; System.out.println(selected?"Y":"N"); continue; } if (all) { - c.selected = true; + c.enabled = true; System.out.println("Y"); continue; } if (none) { - c.selected = false; + c.enabled = false; System.out.println("N"); continue; } while(true) { String s = reader.readLine().toLowerCase(); if (s.isEmpty()) { - c.selected = selected; + c.enabled = selected; break; } else if ( s.startsWith("k")) { - c.selected = selected; + c.enabled = selected; keep = true; break; } else if ( s.startsWith("y")) { - c.selected = true; + c.enabled = true; break; } else if ( s.startsWith("a")) { - c.selected = true; + c.enabled = true; all = true; break; } else if ( s.startsWith("none")) { - c.selected = false; + c.enabled = false; none = true; break; } else if ( s.startsWith("n")) { - c.selected = false; + c.enabled = false; break; } } -- 2.39.5