X-Git-Url: http://git.dolda2000.com/gitweb/?a=blobdiff_plain;f=manga%2Flib.py;h=373c93258a95107b7145433ea47ccc90cb20b5aa;hb=d9163efe24c7d8653fa1880612ab8e0864d5ae9d;hp=ffea7a3e30c753d257ed7ca84328609c6b24b894;hpb=699d0c171c7482ce6c6a2835df7e0ba7b7505729;p=automanga.git diff --git a/manga/lib.py b/manga/lib.py index ffea7a3..373c932 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: @@ -171,3 +171,18 @@ class cursor(object): def __iter__(self): return self + +def _lazymod(name): + return __import__(name, fromlist=["dummy"]) +class _lazydict(object): + def __init__(self): + self.bk = {} + def __setitem__(self, key, val): + self.bk[key] = "u", val + def __getitem__(self, key): + st, v = self.bk[key] + if st == "u": + v = self.bk[key] = v() + return v +libraries = _lazydict() +libraries["mf"] = lambda: _lazymod("manga.mangafox").library()