X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=automanga;h=53f8de6b21e7e37e3c96d48cc8b5ccc3f66ea760;hb=ffd12e718bf1915abde0455fdf05a34d0632ed4d;hp=36bd1cf814e25fe14ab1cf7595abc3e7562feda1;hpb=462b734307c7fecd6b57d6c61adaf81b62f03c74;p=automanga.git diff --git a/automanga b/automanga index 36bd1cf..53f8de6 100755 --- a/automanga +++ b/automanga @@ -8,21 +8,27 @@ gobject.threads_init() gtk.gdk.threads_init() def usage(out): - out.write("usage: automanga [-h] [-p PROFILE] [-l LIBRARY] [DIR-OR-ID]\n") - out.write(" automanga [-h] -s LIBRARY NAME\n") + out.write("usage: automanga [-h] [-p PROFILE] {DIRECTORY|-l LIBRARY ID|-a ALIAS}\n") + out.write(" automanga -a ALIAS=LIBRARY:ID\n") + out.write(" automanga -{s|S} LIBRARY NAME\n") libname = None -search = False +search = None profile = "" -opts, args = getopt.getopt(sys.argv[1:], "hl:sp:") +alias = None +opts, args = getopt.getopt(sys.argv[1:], "hl:sSp:a:") for o, a in opts: if o == "-h": usage(sys.stdout) sys.exit(0) elif o == "-l": libname = a + elif o == "-a": + alias = a elif o == "-s": - search = True + search = "name" + elif o == "-S": + search = "match" elif o == "-p": if a == "": profile = None @@ -45,11 +51,54 @@ if search: except ImportError: sys.stderr.write("automanga: no such library: %s\n" % args[0]) sys.exit(1) - for manga in lib.byname(args[1]): + try: + if search == "name": + results = lib.byname(args[1]) + elif search == "match": + results = lib.search(args[1]) + except NotImplementedError: + sys.stderr.write("automanga: %s does not support searching\n" % args[0]) + sys.exit(1) + for manga in results: sys.stdout.write("\"%s\": %s\n" % (manga.name, manga.id)) sys.exit(0) -if libname is not None: +if alias and (alias.find('=') > 0): + alias, nm = alias.split('=', 1) + if not ':' in nm: + usage(sys.stderr) + sys.exit(1) + libname, mid = nm.split(':', 1) + try: + lib = manga.lib.findlib(libname) + except ImportError: + sys.stderr.write("automanga: no such library: %s\n" % libname) + sys.exit(1) + try: + mng = lib.byid(mid) + except KeyError: + sys.stderr.write("automanga: no such manga: %s\n" % mid) + sys.exit(1) + profile.setalias(alias, libname, mng.id) + sys.exit(0) + +if alias: + try: + libname, mid = profile.getalias(alias) + except KeyError: + sys.stderr("automanga: no such alias: %s\n" % alias) + sys.exit(1) + try: + lib = manga.lib.findlib(libname) + except ImportError: + sys.stderr.write("automanga: no such library: %s\n" % libname) + sys.exit(1) + try: + mng = lib.byid(mid) + except KeyError: + sys.stderr.write("automanga: manga no longer found: %s\n" % mid) + sys.exit(1) +elif libname is not None: if len(args) < 1: usage(sys.stderr) sys.exit(1)