# -*- coding: utf-8 -*- import codecs from module.plugins.Container import Container from module.utils import fs_encode class LinkList(Container): __name__ = "LinkList" __type__ = "container" __version__ = "0.14" __pattern__ = r'.+\.txt$' __config__ = [("clear" , "bool" , "Clear Linklist after adding" , False), ("encoding", "string", "File encoding (default utf-8)", "" )] __description__ = """Read link lists in txt format""" __license__ = "GPLv3" __authors__ = [("spoob", "spoob@pyload.org"), ("jeix", "jeix@hasnomail.com")] def decrypt(self, pyfile): try: encoding = codecs.lookup(self.getConfig("encoding")).name except Exception: encoding = "utf-8" file = fs_encode(pyfile.url.strip()) txt = codecs.open(file, 'r', encoding) links = txt.readlines() curPack = "Parsed links from %s" % pyfile.name packages = {curPack:[],} for link in links: link = link.strip() if not link: continue if link.startswith(";"): continue if link.startswith("[") and link.endswith("]"): # new package curPack = link[1:-1] packages[curPack] = [] continue packages[curPack].append(link) txt.close() # empty packages fix delete = [] for key, value in packages.iteritems(): if not value: delete.append(key) for key in delete: del packages[key] if self.getConfig("clear"): try: txt = open(file, 'wb') txt.close() except Exception: self.logWarning(_("LinkList could not be cleared")) for name, links in packages.iteritems(): self.packages.append((name, links, name))