X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=manga%2Fprofile.py;h=2ff6be5d9b4ff7b835e7989d653c73641137e03e;hb=271d68da6cb2a273fd3ce29e95c4a021cc6da125;hp=2a82df4bd59a1bfc483f228ee4948bd59b5694e6;hpb=375a030d6a984383643afab2ad33289ff4f35a74;p=automanga.git diff --git a/manga/profile.py b/manga/profile.py index 2a82df4..2ff6be5 100644 --- a/manga/profile.py +++ b/manga/profile.py @@ -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] == '.':