From: Fredrik Tolf Date: Sun, 12 May 2013 01:12:39 +0000 (+0200) Subject: Coalesce local isolated pages. X-Git-Url: http://dolda2000.com/gitweb/?p=automanga.git;a=commitdiff_plain;h=afd66b913158fdca95d1a30a0518808afb437374 Coalesce local isolated pages. --- diff --git a/manga/local.py b/manga/local.py index d1a839c..3051013 100644 --- a/manga/local.py +++ b/manga/local.py @@ -151,9 +151,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)