X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=manga%2Flocal.py;h=fe699a44f2c1bccdc7d65e1bcdaa4c814e96a9c5;hb=03fdcb32535b1920a6c9ac0875ea7d44a47969be;hp=d1a839ce650c13f6c5f19ca59237f4276ee80b3b;hpb=1f51eb5842dd016ac3258b670be44633d22062fc;p=automanga.git diff --git a/manga/local.py b/manga/local.py index d1a839c..fe699a4 100644 --- a/manga/local.py +++ b/manga/local.py @@ -128,6 +128,8 @@ class manga(lib.manga): ordered, files = self.imglist() pages, orig = self.bakenames(files) mx = maxstruct(pages) + if mx is None: + raise TypeError("could not figure out any structure") var = [i for i, part in enumerate(mx) if part == int] structs = [(nm, decode1(nm)) for nm in pages] if not ordered: @@ -151,9 +153,15 @@ class manga(lib.manga): oids.append(cur) ret = [] for id in oids: - cur = interm(id, id, p.stack + [(p, len(ret))], []) - cur.direct = constree(cur, [(nm, st) for nm, st in structs if st[var[idx]] == id], idx + 1) - ret.append(cur) + sub = [(nm, st) for nm, st in structs if st[var[idx]] == id] + if len(sub) == 1: + nm, st = sub[0] + id = "".join(st[var[idx]:]) + ret.append(page(self, pj(self.path, orig[nm]), id, id, p.stack + [(p, len(ret))])) + else: + cur = interm(id, id, p.stack + [(p, len(ret))], []) + cur.direct = constree(cur, sub, idx + 1) + ret.append(cur) return ret return constree(self, structs, 0)