diff options
Diffstat (limited to 'module/plugins/internal/Crypter.py')
-rw-r--r-- | module/plugins/internal/Crypter.py | 67 |
1 files changed, 30 insertions, 37 deletions
diff --git a/module/plugins/internal/Crypter.py b/module/plugins/internal/Crypter.py index 157ce5dab..596bbcfb4 100644 --- a/module/plugins/internal/Crypter.py +++ b/module/plugins/internal/Crypter.py @@ -1,20 +1,19 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.Base import Base, create_getInfo, parse_fileInfo -from module.plugins.internal.utils import fixname, parse_name +from module.plugins.internal.Base import Base +from module.plugins.internal.misc import parse_name, safename class Crypter(Base): __name__ = "Crypter" __type__ = "crypter" - __version__ = "0.14" + __version__ = "0.16" __status__ = "stable" __pattern__ = r'^unmatchable$' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), #: Overrides pyload.config.get("general", "folder_per_package") - ("subfolder_per_package", "bool", "Create a subfolder for each package", True)] + __config__ = [("activated" , "bool" , "Activated" , True ), + ("use_premium" , "bool" , "Use premium account if available", True ), + ("folder_per_package", "Default;Yes;No", "Create folder for each package" , "Default")] __description__ = """Base decrypter plugin""" __license__ = "GPLv3" @@ -23,18 +22,15 @@ class Crypter(Base): def init_base(self): self.packages = [] #: Put all packages here. It's a list of tuples like: ( name, [list of links], folder ) - self.links = [] #: List of urls, pyLoad will generate packagenames + self.links = [] #: List of urls, pyLoad will generate packagenames def setup_base(self): self.packages = [] - self.links = [] + self.links = [] def process(self, pyfile): - """ - Main method - """ self.decrypt(pyfile) if self.links: @@ -57,7 +53,8 @@ class Crypter(Base): """ Generate new packages from self.links """ - packages = [(name, links, None) for name, links in self.pyload.api.generatePackages(self.links).items()] + pdict = self.pyload.api.generatePackages(self.links) + packages = [(name, links, parse_name(name)) for name, links in pdict.items()] self.packages.extend(packages) @@ -65,41 +62,37 @@ class Crypter(Base): """ Create new packages from self.packages """ - package_folder = self.pyfile.package().folder - package_password = self.pyfile.package().password - package_queue = self.pyfile.package().queue + pack_folder = self.pyfile.package().folder + pack_password = self.pyfile.package().password + pack_queue = self.pyfile.package().queue + + folder_per_package = self.config.get('folder_per_package', "Default") - folder_per_package = self.pyload.config.get("general", "folder_per_package") - use_subfolder = self.get_config('use_subfolder', folder_per_package) - subfolder_per_package = self.get_config('subfolder_per_package', True) + if folder_per_package is "Default": + folder_per_package = self.pyload.config.get("general", "folder_per_package") for name, links, folder in self.packages: - self.log_info(_("Parsed package: %s") % name, - _("Found %d links") % len(links), - _("Saved to folder: %s") % folder if folder else _("Saved to default download folder")) + self.log_info(_("Create package: %s") % name, + _("%d links") % len(links)) links = map(self.fixurl, links) self.log_debug("LINKS for package " + name, *links) - pid = self.pyload.api.addPackage(name, links, package_queue) + pid = self.pyload.api.addPackage(name, links, pack_queue) - if package_password: - self.pyload.api.setPackageData(pid, {'password': package_password}) + if pack_password: + self.pyload.api.setPackageData(pid, {'password': pack_password}) #: Workaround to do not break API addPackage method - set_folder = lambda x="": self.pyload.api.setPackageData(pid, {'folder': fixname(x)}) + set_folder = lambda x: self.pyload.api.setPackageData(pid, {'folder': safename(x or "")}) - if use_subfolder: - if not subfolder_per_package: - set_folder(package_folder) - self.log_debug("Set package %(name)s folder to: %(folder)s" % {'name': name, 'folder': folder}) + if not folder_per_package: + folder = pack_folder - elif not folder_per_package or name is not folder: - if not folder: - folder = parse_name(name) + elif not folder or folder == name: + folder = parse_name(name) - set_folder(folder) - self.log_debug("Set package %(name)s folder to: %(folder)s" % {'name': name, 'folder': folder}) + self.log_info(_("Save package `%(name)s` to folder: %(folder)s") + % {'name': name, 'folder': folder}) - elif folder_per_package: - set_folder() + set_folder(folder) |