sys.stderr.write("getmanga: " + (msg % args) + "\n")
def getprop(nm, default=None):
- if "dl-" + nm in mprof.props:
+ if mprof and "dl-" + nm in mprof.props:
return mprof.props["dl-" + nm]
if nm in props:
return props[nm]
msg(1, "getting %s...", nm)
with page.open() as fp:
with open(path, "wb") as out:
- while True:
- data = fp.read(65536)
- if data == b"":
- break
- out.write(data)
+ done = False
+ try:
+ while True:
+ data = fp.read(65536)
+ if data == b"":
+ done = True
+ break
+ out.write(data)
+ finally:
+ if not done:
+ os.unlink(path)
try:
img = Image.open(path)
except OSError:
time.sleep(cwait)
def usage(out):
- out.write("usage: getmanga [-hv] [-w WAIT] [-p PROFILE] DIRECTORY [LIBRARY ID]\n")
+ out.write("usage: getmanga [-hv] [-w WAIT] [-p PROFILE] [-P PATTERN] DIRECTORY [LIBRARY ID]\n")
def main():
global verbose, wait, mprof, props
- opts, args = getopt.getopt(sys.argv[1:], "hvp:w:")
- profnm = ""
+ opts, args = getopt.getopt(sys.argv[1:], "hvp:w:P:")
+ profnm = None
+ pattern = None
for o, a in opts:
if o == "-h":
usage(sys.stdout)
verbose += 1
elif o == "-w":
wait = int(a)
+ elif o == "-P":
+ pattern = a
if len(args) < 1:
usage(sys.stderr)
sys.exit(1)
elif words[0] == "lset" and len(words) > 1:
props[words[1]] = words[2:]
- if profnm == "":
+ if profnm is None:
profile = manga.profile.profile.last()
+ elif profnm == "":
+ profile = None
else:
profile = manga.profile.profile.byname(profnm)
except KeyError:
sys.stderr.write("getmanga: no such manga: %s\n" % (mid))
sys.exit(1)
- mprof = profile.getmanga(libnm, mng.id)
+ if profile is not None:
+ mprof = profile.getmanga(libnm, mng.id)
+ else:
+ mprof = None
- download(mprof.open(), tdir, getprop("pattern"))
+ download(mng, tdir, pattern or getprop("pattern"))
if __name__ == "__main__":
try: