Added manga aliases.
[automanga.git] / manga / profile.py
index 2a82df4..2ff6be5 100644 (file)
@@ -49,6 +49,7 @@ def splitline(line):
                 elif c.isspace():
                     ret.append(buf)
                     buf = ""
+                    a = False
                     break
                 elif c == "\\" and p < len(line):
                     buf += bsq(line[p])
@@ -104,6 +105,12 @@ class manga(object):
             return default
         return self.props[key]
 
+    def __getitem__(self, key):
+        return self.props[key]
+
+    def __contains__(self, key):
+        return key in self.props
+
     def setprop(self, key, val):
         self.props[key] = val
 
@@ -175,6 +182,30 @@ class profile(object):
         with openwdir(pj(basedir, "last"), "w") as f:
             f.write(self.name + "\n")
 
+    def getaliases(self):
+        ret = {}
+        if os.path.exists(pj(self.dir, "alias")):
+            with openwdir(pj(self.dir, "alias")) as f:
+                for ln in f:
+                    ln = splitline(ln)
+                    if len(ln) < 1: continue
+                    if ln[0] == "alias" and len(ln) > 3:
+                        ret[ln[1]] = ln[2], ln[3]
+        return ret
+
+    def savealiases(self, map):
+        with openwdir(pj(self.dir, "alias"), "w") as f:
+            for nm, (libnm, id) in map.iteritems():
+                f.write(consline("alias", nm, libnm, id) + "\n")
+
+    def getalias(self, nm):
+        return self.getaliases()[nm]
+
+    def setalias(self, nm, libnm, id):
+        aliases = self.getaliases()
+        aliases[nm] = libnm, id
+        self.savealiases(aliases)
+
     @classmethod
     def byname(cls, name):
         if not name or name == "last" or name[0] == '.':