+ if search:
+ if len(args) < 2:
+ usage(sys.stderr)
+ sys.exit(1)
+ try:
+ lib = manga.lib.findlib(args[0])
+ except ImportError:
+ sys.stderr.write("automanga: no such library: %s\n" % args[0])
+ sys.exit(1)
+ try:
+ if search == "name":
+ results = lib.byname(args[1])
+ elif search == "match":
+ results = lib.search(args[1])
+ if hasattr(results, "__length_hint__"):
+ sys.stderr.write("%i results:\n" % results.__length_hint__())
+ except NotImplementedError:
+ sys.stderr.write("automanga: %s does not support searching\n" % args[0])
+ sys.exit(1)
+ for mng in results:
+ sys.stdout.write("\"%s\": %s\n" % (mng.name, mng.id))
+ return
+
+ if listtag is not None:
+ if profile is not None:
+ for mprof in profile.bytag(listtag):
+ try:
+ mng = mprof.open()
+ except KeyError:
+ sys.stderr.write("%s %s: no longer found\n" % (mprof.libnm, mprof.id))
+ continue
+ sys.stdout.write("%s %s: \"%s\"\n" % (mprof.libnm, mprof.id, mng.name))
+ return
+
+ if alias and (alias.find('=') > 0):
+ tgt, 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 as e:
+ sys.stderr.write("automanga: no such manga: %s\n" % str(e))
+ sys.exit(1)
+ profile.setalias(tgt, libname, mng.id)
+ return
+
+ if alias:
+ try:
+ libname, mid = profile.getalias(alias)
+ except KeyError:
+ sys.stderr.write("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)
+ 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(args.pop(0))
+ except KeyError as e:
+ sys.stderr.write("automanga: no such manga: %s\n" % str(e))
+ sys.exit(1)