Display progress of preloading.
[automanga.git] / manga / lib.py
index ffea7a3..373c932 100644 (file)
@@ -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()