# -*- coding: utf-8 -*- import re from module.plugins.Crypter import Crypter class MultiloadCz(Crypter): __name__ = "MultiloadCz" __type__ = "crypter" __pattern__ = r'http://(?:[^/]*\.)?multiload.cz/(stahnout|slozka)/.*' __version__ = "0.4" __description__ = """Multiload.cz decrypter plugin""" __config__ = [("usedHoster", "str", "Prefered hoster list (bar-separated) ", ""), ("ignoredHoster", "str", "Ignored hoster list (bar-separated) ", "")] __author_name__ = "zoidberg" __author_mail__ = "zoidberg@mujmail.cz" FOLDER_PATTERN = r'
]*>([^>]*)' LINK_PATTERN = r'

([^<]+)

' def decrypt(self, pyfile): self.html = self.load(pyfile.url, decode=True) new_links = [] if re.match(self.__pattern__, pyfile.url).group(1) == "slozka": found = re.search(self.FOLDER_PATTERN, self.html) if found is not None: new_links.extend(found.group(1).split()) else: found = re.findall(self.LINK_PATTERN, self.html) if found: prefered_set = set(self.getConfig("usedHoster").split('|')) new_links.extend([x[1] for x in found if x[0] in prefered_set]) if not new_links: ignored_set = set(self.getConfig("ignoredHoster").split('|')) new_links.extend([x[1] for x in found if x[0] not in ignored_set]) if new_links: self.core.files.addLinks(new_links, pyfile.package().id) else: self.fail('Could not extract any links')