X-Git-Url: http://git.dolda2000.com/gitweb/?a=blobdiff_plain;f=manga%2Flib.py;h=3c83ab127875263f0401991dc4a4a3b7cbb59449;hb=39b66c759278aff6cde35883172f228fcab0ac7c;hp=2a11cb10d41f0698591e667f1eea436253942913;hpb=53395a9dd29c3dfdf3def032e85d8c3a90e1bf22;p=automanga.git diff --git a/manga/lib.py b/manga/lib.py index 2a11cb1..3c83ab1 100644 --- a/manga/lib.py +++ b/manga/lib.py @@ -46,8 +46,8 @@ class pagetree(object): """Returns a list of the IDs necessary to resolve this node from the root node.""" if len(self.stack) == 0: - raise Exception("Cannot get ID list on root node.") - return [n.id for n, i in self.stack[1:]] + [self.id] + return [] + return self.stack[-1][0].idlist() + [self.id] def byidlist(self, idlist): if len(idlist) == 0: @@ -148,9 +148,9 @@ class cursor(object): else: self.cur = self.descend(ob) - def descend(self, ob): + def descend(self, ob, last=False): while isinstance(ob, pagelist): - ob = ob[0] + ob = ob[len(ob) - 1 if last else 0] if not isinstance(ob, page): raise TypeError("object in page tree was unexpectedly not a pagetree") return ob @@ -165,7 +165,7 @@ class cursor(object): def prev(self): for n, i in reversed(self.cur.stack): if i > 0: - self.cur = self.descend(n[i - 1]) + self.cur = self.descend(n[i - 1], True) return self.cur raise StopIteration()