]> www.vanbest.org Git - tv_grab_nl_java/commitdiff
Try keeping enabled flags in config file
authorJan-Pascal van Best <janpascal@vanbest.org>
Sun, 25 Mar 2012 18:48:44 +0000 (20:48 +0200)
committerJan-Pascal van Best <janpascal@vanbest.org>
Sun, 25 Mar 2012 18:48:44 +0000 (20:48 +0200)
src/main/java/org/vanbest/xmltv/Channel.java
src/main/java/org/vanbest/xmltv/Config.java
src/main/java/org/vanbest/xmltv/Main.java

index f80ab6f121c6ca6521acbf8a46a7324a9d46b7a5..c3f1340e10a7a5ae18a5b16b386bd86061b9596e 100644 (file)
@@ -13,7 +13,7 @@ public class Channel {
        List<String> names; // at least one name is obligatory\r
        List<Icon> icons;\r
        List<String> urls;\r
-       protected boolean selected = true;\r
+       protected boolean enabled = true;\r
        \r
        protected Channel(String id) {\r
                this.id = id;\r
@@ -64,4 +64,9 @@ public class Channel {
        public void addIcon(String url) {\r
                icons.add(new Icon(url));\r
        }\r
+\r
+       public void setEnabled(boolean b) {\r
+               this.enabled = b;\r
+               \r
+       }\r
 }
\ No newline at end of file
index 06f7d3f5aad5554f68078551bb4a8568d7e8604b..0eb056057ae8f7a73899781cec2c06b0bde4544d 100644 (file)
@@ -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<String> 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;
index c31f0dea45340e96a8305c8c06b9519803d7e6b3..571d407a74453bbd33ef56834187f15a9d99c247 100644 (file)
@@ -76,7 +76,7 @@ public class Main {
                        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 (!c.enabled) continue;
                                if (!config.quiet) System.out.print(".");
                                Set<Programme> 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;
                                }
                        }