X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=getmanga;h=e6a9c96d34ffd5c05f9c6cc0a9b7383c86605114;hb=67983628115ac32e2bdce3b8ab4649743ef2b836;hp=9a4fa31bf14f349413aac11ca23afecfdf49b24a;hpb=64eb9fa5068bff909c0702614ef1fb1fcdec1ea8;p=automanga.git diff --git a/getmanga b/getmanga index 9a4fa31..e6a9c96 100755 --- a/getmanga +++ b/getmanga @@ -37,33 +37,35 @@ def expand(pattern, page): ret = "" si = 0 fp = 0 + stack = list(zip([t for t, i in page.stack], [t for t, i in page.stack[1:]] + [page], [i for t, i in page.stack])) while True: p = pattern.find('%', fp) if p < 0: - if si < len(page.stack): + if si < len(stack): sys.stderr.write("getmanga: pattern %s did not match page %s\n" % - (pattern, "/".join(t.name for t, i in page.stack))) + (pattern, "/".join(c.name for t, c, i in stack))) sys.exit(1) return ret + pattern[fp:] ret += pattern[fp:p] - m = pattern[p:p + 1] + m = pattern[p + 1:p + 2] + fp = p + 2 if m == "%": ret += "%" else: - if si >= len(page.stack): + if si >= len(stack): sys.stderr.write("getmanga: pattern %s did not match page %s\n" % - (pattern, "/".join(t.name for t, i in page.stack))) + (pattern, "/".join(c.name for t, c, i in stack))) sys.exit(1) - t, ti = page.stack[si] + t, ct, ti = stack[si] si += 1 if m == "i": ret += "%0*i" % (digits(len(t) + 1), ti + 1) elif m == "n": - ret += t.name + ret += ct.name elif m == "d": - ret += t.id + ret += ct.id else: - sys.stderr.write("getmanga: %s: unknown specified `%s'\n" % (m)) + sys.stderr.write("getmanga: %s: unknown specifier `%s'\n" % (pattern, m)) sys.exit(1) def download(mng, tdir, pattern): @@ -132,7 +134,7 @@ def main(): props = {} if os.path.exists(pfile): with open(pfile, "r") as fp: - for words in splitlines(f): + for words in manga.profile.splitlines(fp): if words[0] == "set" and len(words) > 2: props[words[1]] = words[2] elif words[0] == "lset" and len(words) > 1: