Commit | Line | Data |
---|---|---|
e26514bb FT |
1 | #!/usr/bin/python |
2 | ||
3 | import sys, getopt | |
012c4cae | 4 | import manga.lib, manga.reader, manga.profile, manga.local |
e26514bb FT |
5 | import glib, gobject, gtk |
6 | ||
7 | gobject.threads_init() | |
8 | gtk.gdk.threads_init() | |
9 | ||
10 | def usage(out): | |
012c4cae | 11 | out.write("usage: automanga [-h] [-p PROFILE] [-l LIBRARY] [DIR-OR-ID]\n") |
e26514bb FT |
12 | out.write(" automanga [-h] -s LIBRARY NAME\n") |
13 | ||
14 | libname = None | |
15 | search = False | |
012c4cae FT |
16 | profile = "" |
17 | opts, args = getopt.getopt(sys.argv[1:], "hl:sp:") | |
e26514bb FT |
18 | for o, a in opts: |
19 | if o == "-h": | |
20 | usage(sys.stdout) | |
21 | sys.exit(0) | |
22 | elif o == "-l": | |
23 | libname = a | |
24 | elif o == "-s": | |
25 | search = True | |
012c4cae FT |
26 | elif o == "-p": |
27 | if a == "": | |
28 | profile = None | |
29 | else: | |
30 | profile = a | |
31 | if profile == "": | |
32 | try: | |
33 | profile = manga.profile.profile.last() | |
34 | except KeyError: | |
35 | profile = manga.profile.profile.byname("default") | |
36 | elif profile is not None: | |
37 | profile = manga.profile.profile.byname(profile) | |
e26514bb FT |
38 | |
39 | if search: | |
40 | if len(args) < 2: | |
41 | usage(sys.stderr) | |
42 | sys.exit(1) | |
43 | try: | |
31ea855c FT |
44 | lib = manga.lib.findlib(args[0]) |
45 | except ImportError: | |
e26514bb FT |
46 | sys.stderr.write("automanga: no such library: %s\n" % args[0]) |
47 | sys.exit(1) | |
48 | for manga in lib.byname(args[1]): | |
49 | sys.stdout.write("\"%s\": %s\n" % (manga.name, manga.id)) | |
50 | sys.exit(0) | |
51 | ||
52 | if libname is not None: | |
53 | if len(args) < 1: | |
54 | usage(sys.stderr) | |
55 | sys.exit(1) | |
56 | try: | |
31ea855c FT |
57 | lib = manga.lib.findlib(libname) |
58 | except ImportError: | |
e26514bb FT |
59 | sys.stderr.write("automanga: no such library: %s\n" % libname) |
60 | sys.exit(1) | |
61 | try: | |
62 | mng = lib.byid(args[0]) | |
63 | except KeyError: | |
64 | sys.stderr.write("automanga: no such manga: %s\n" % args[0]) | |
65 | sys.exit(1) | |
66 | else: | |
012c4cae | 67 | libname = "local" |
462b7343 FT |
68 | try: |
69 | if len(args) > 0: | |
70 | mdir = args[0] | |
71 | else: | |
72 | mdir = "." | |
73 | mng = manga.local.manga(mdir) | |
74 | except TypeError: | |
75 | sys.stderr.write("automanga: not a valid manga directory: %s\n" % mdir) | |
76 | sys.exit(1) | |
e26514bb | 77 | |
7f4e185b | 78 | mprof = None if profile is None else profile.getmanga(libname, mng.id, True) |
012c4cae FT |
79 | if profile is not None: |
80 | profile.setlast() | |
81 | ||
7f4e185b | 82 | reader = manga.reader.reader(mng, mprof) |
e26514bb FT |
83 | reader.show() |
84 | gtk.main() |