--tag -> --search-tag
[fanfix.git] / src / be / nikiroo / fanfix / Main.java
index 2437cae567310700509c7c9a08a0a59212c7b1ec..995251d16d0ee7ca6a0438ce21c8268efa6c51cc 100644 (file)
@@ -35,7 +35,7 @@ import be.nikiroo.utils.serial.server.ServerObject;
  */
 public class Main {
        private enum MainAction {
-               IMPORT, EXPORT, CONVERT, READ, READ_URL, LIST, HELP, SET_READER, START, VERSION, SERVER, STOP_SERVER, REMOTE, SET_SOURCE, SET_TITLE, SET_AUTHOR, SEARCH, TAG
+               IMPORT, EXPORT, CONVERT, READ, READ_URL, LIST, HELP, SET_READER, START, VERSION, SERVER, STOP_SERVER, REMOTE, SET_SOURCE, SET_TITLE, SET_AUTHOR, SEARCH, SEARCH_TAG
        }
 
        /**
@@ -65,10 +65,10 @@ public class Main {
         * <li>--search [where] [keywords] (page [page]) (item [item]): search on
         * the supported website and display the given results page of stories it
         * found, or the story details if asked</li>
-        * <li>--tag [where]: list all the tags supported by this website</li>
-        * <li>--tag [index 1]... (page [page]) (item [item]): search for the given
-        * stories or subtags, tag by tag, and display information about a specific
-        * page of results or about a specific item if requested</li>
+        * <li>--search-tag [where]: list all the tags supported by this website</li>
+        * <li>--search-tag [index 1]... (page [page]) (item [item]): search for the
+        * given stories or subtags, tag by tag, and display information about a
+        * specific page of results or about a specific item if requested</li>
         * <li>--list ([type]): list the stories present in the library</li>
         * <li>--set-source [id] [new source]: change the source of the given story</li>
         * <li>--set-title [id] [new title]: change the title of the given story</li>
@@ -222,13 +222,15 @@ public class Main {
                                        if (searchOn == null) {
                                                Instance.getTraceHandler().error(
                                                                "Website not known: <" + args[i] + ">");
-                                               exitCode = 255;
+                                               exitCode = 41;
+                                               break;
                                        }
 
                                        if (BasicSearchable.getSearchable(searchOn) == null) {
                                                Instance.getTraceHandler().error(
                                                                "Website not supported: " + searchOn);
-                                               exitCode = 255;
+                                               exitCode = 42;
+                                               break;
                                        }
                                } else if (search == null) {
                                        search = args[i];
@@ -256,7 +258,7 @@ public class Main {
                                        exitCode = 255;
                                }
                                break;
-                       case TAG:
+                       case SEARCH_TAG:
                                if (searchOn == null) {
                                        searchOn = SupportType.valueOfAllOkUC(args[i]);
 
@@ -399,7 +401,7 @@ public class Main {
                        }
                }
 
-               if (exitCode != 255) {
+               if (exitCode == 0) {
                        switch (action) {
                        case IMPORT:
                                exitCode = imprt(urlString, pg);
@@ -491,24 +493,23 @@ public class Main {
                                        break;
                                }
 
-                               if (searchOn == null || search == null) {
-                                       // TODO: do on reader!!!
-                                       for (SupportType type : SupportType.values()) {
-                                               if (BasicSearchable.getSearchable(type) != null) {
-                                                       System.out.println(type);
-                                               }
-                                       }
-                               } else {
-                                       try {
+                               try {
+                                       if (searchOn == null) {
+                                               BasicReader.getReader().search(true);
+                                       } else if (search != null) {
+
                                                BasicReader.getReader().search(searchOn, search, page,
                                                                item, true);
-                                       } catch (IOException e1) {
-                                               Instance.getTraceHandler().error(e1);
+                                       } else {
+                                               exitCode = 255;
                                        }
+                               } catch (IOException e1) {
+                                       Instance.getTraceHandler().error(e1);
+                                       exitCode = 20;
                                }
 
                                break;
-                       case TAG:
+                       case SEARCH_TAG:
                                if (searchOn == null) {
                                        exitCode = 255;
                                        break;