diff options
Diffstat (limited to 'module/plugins/crypter')
90 files changed, 554 insertions, 866 deletions
diff --git a/module/plugins/crypter/BitshareComFolder.py b/module/plugins/crypter/BitshareComFolder.py index c1c4a915b..ab7cec80a 100644 --- a/module/plugins/crypter/BitshareComFolder.py +++ b/module/plugins/crypter/BitshareComFolder.py @@ -1,20 +1,19 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class BitshareComFolder(SimpleCrypter): __name__ = "BitshareComFolder" __type__ = "crypter" - __version__ = "0.08" + __version__ = "0.09" __status__ = "testing" __pattern__ = r'http://(?:www\.)?bitshare\.com/\?d=\w+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Bitshare.com folder decrypter plugin""" __license__ = "GPLv3" @@ -23,6 +22,3 @@ class BitshareComFolder(SimpleCrypter): LINK_PATTERN = r'<a href="(http://bitshare\.com/files/.+)">.+</a></td>' NAME_PATTERN = r'View public folder "(?P<N>.+?)"</h1>' - - -getInfo = create_getInfo(BitshareComFolder) diff --git a/module/plugins/crypter/C1NeonCom.py b/module/plugins/crypter/C1NeonCom.py index de0868fa1..b00fa1eae 100644 --- a/module/plugins/crypter/C1NeonCom.py +++ b/module/plugins/crypter/C1NeonCom.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo +from module.plugins.internal.DeadCrypter import DeadCrypter class C1NeonCom(DeadCrypter): __name__ = "C1NeonCom" __type__ = "crypter" - __version__ = "0.08" + __version__ = "0.09" __status__ = "stable" __pattern__ = r'http://(?:www\.)?c1neon\.com/.+' @@ -15,6 +15,3 @@ class C1NeonCom(DeadCrypter): __description__ = """C1neon.com decrypter plugin""" __license__ = "GPLv3" __authors__ = [("godofdream", "soilfiction@gmail.com")] - - -getInfo = create_getInfo(C1NeonCom) diff --git a/module/plugins/crypter/ChipDe.py b/module/plugins/crypter/ChipDe.py index ced06fe0c..66ef9c5bf 100644 --- a/module/plugins/crypter/ChipDe.py +++ b/module/plugins/crypter/ChipDe.py @@ -2,20 +2,19 @@ import re -from module.plugins.internal.Crypter import Crypter, create_getInfo +from module.plugins.internal.Crypter import Crypter class ChipDe(Crypter): __name__ = "ChipDe" __type__ = "crypter" - __version__ = "0.14" + __version__ = "0.15" __status__ = "testing" __pattern__ = r'http://(?:www\.)?chip\.de/video/.+\.html' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("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__ = """Chip.de decrypter plugin""" __license__ = "GPLv3" @@ -33,6 +32,3 @@ class ChipDe(Crypter): else: self.links = [f.group(1)] self.log_debug("The file URL is %s" % self.links[0]) - - -getInfo = create_getInfo(ChipDe) diff --git a/module/plugins/crypter/CloudzillaToFolder.py b/module/plugins/crypter/CloudzillaToFolder.py index e8a2b5525..22f477300 100644 --- a/module/plugins/crypter/CloudzillaToFolder.py +++ b/module/plugins/crypter/CloudzillaToFolder.py @@ -2,21 +2,20 @@ import re -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class CloudzillaToFolder(SimpleCrypter): __name__ = "CloudzillaToFolder" __type__ = "crypter" - __version__ = "0.08" + __version__ = "0.09" __status__ = "testing" __pattern__ = r'http://(?:www\.)?cloudzilla\.to/share/folder/(?P<ID>[\w^_]+)' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Cloudzilla.to folder decrypter plugin""" __license__ = "GPLv3" @@ -38,6 +37,3 @@ class CloudzillaToFolder(SimpleCrypter): if re.search(self.PASSWORD_PATTERN, self.data): self.retry(msg="Wrong password") - - -getInfo = create_getInfo(CloudzillaToFolder) diff --git a/module/plugins/crypter/CrockoComFolder.py b/module/plugins/crypter/CrockoComFolder.py index b6d3ba214..c07773c0d 100644 --- a/module/plugins/crypter/CrockoComFolder.py +++ b/module/plugins/crypter/CrockoComFolder.py @@ -1,20 +1,19 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class CrockoComFolder(SimpleCrypter): __name__ = "CrockoComFolder" __type__ = "crypter" - __version__ = "0.05" + __version__ = "0.06" __status__ = "testing" __pattern__ = r'http://(?:www\.)?crocko\.com/f/.+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Crocko.com folder decrypter plugin""" __license__ = "GPLv3" @@ -22,6 +21,3 @@ class CrockoComFolder(SimpleCrypter): LINK_PATTERN = r'<td class="last"><a href="(.+?)">download</a>' - - -getInfo = create_getInfo(CrockoComFolder) diff --git a/module/plugins/crypter/CryptItCom.py b/module/plugins/crypter/CryptItCom.py index 742483017..c30595f29 100644 --- a/module/plugins/crypter/CryptItCom.py +++ b/module/plugins/crypter/CryptItCom.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo +from module.plugins.internal.DeadCrypter import DeadCrypter class CryptItCom(DeadCrypter): __name__ = "CryptItCom" __type__ = "crypter" - __version__ = "0.14" + __version__ = "0.15" __status__ = "stable" __pattern__ = r'http://(?:www\.)?crypt-it\.com/(s|e|d|c)/\w+' @@ -15,6 +15,3 @@ class CryptItCom(DeadCrypter): __description__ = """Crypt-it.com decrypter plugin""" __license__ = "GPLv3" __authors__ = [("jeix", "jeix@hasnomail.de")] - - -getInfo = create_getInfo(CryptItCom) diff --git a/module/plugins/crypter/CzshareComFolder.py b/module/plugins/crypter/CzshareComFolder.py index 07c8471d5..4bf2c2a8e 100644 --- a/module/plugins/crypter/CzshareComFolder.py +++ b/module/plugins/crypter/CzshareComFolder.py @@ -2,20 +2,19 @@ import re -from module.plugins.internal.Crypter import Crypter, create_getInfo +from module.plugins.internal.Crypter import Crypter class CzshareComFolder(Crypter): __name__ = "CzshareComFolder" __type__ = "crypter" - __version__ = "0.25" + __version__ = "0.26" __status__ = "testing" __pattern__ = r'http://(?:www\.)?(czshare|sdilej)\.(com|cz)/folders/.+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("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__ = """Czshare.com folder decrypter plugin, now Sdilej.cz""" __license__ = "GPLv3" @@ -34,6 +33,3 @@ class CzshareComFolder(Crypter): self.error(_("FOLDER_PATTERN not found")) self.links.extend(re.findall(self.LINK_PATTERN, m.group(1))) - - -getInfo = create_getInfo(CzshareComFolder) diff --git a/module/plugins/crypter/DailymotionComFolder.py b/module/plugins/crypter/DailymotionComFolder.py index 35db79a0d..04eb4d939 100644 --- a/module/plugins/crypter/DailymotionComFolder.py +++ b/module/plugins/crypter/DailymotionComFolder.py @@ -3,21 +3,20 @@ import re import urlparse -from module.plugins.internal.Crypter import Crypter, create_getInfo -from module.plugins.internal.utils import fs_join, json +from module.plugins.internal.Crypter import Crypter +from module.plugins.internal.misc import fsjoin, json class DailymotionComFolder(Crypter): __name__ = "DailymotionComFolder" __type__ = "crypter" - __version__ = "0.06" + __version__ = "0.07" __status__ = "testing" __pattern__ = r'https?://(?:www\.)?dailymotion\.com/((playlists/)?(?P<TYPE>playlist|user)/)?(?P<ID>[\w^_]+)(?(TYPE)|#)' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("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__ = """Dailymotion.com channel & playlist decrypter""" __license__ = "GPLv3" @@ -101,9 +100,6 @@ class DailymotionComFolder(Crypter): for p_id, p_name, p_owner in playlists: p_videos = self.get_videos(p_id) - p_folder = fs_join(self.pyload.config.get("general", "download_folder"), p_owner, p_name) + p_folder = fsjoin(self.pyload.config.get("general", "download_folder"), p_owner, p_name) self.log_debug("%s video\s found on playlist \"%s\"" % (len(p_videos), p_name)) self.packages.append((p_name, p_videos, p_folder)) #@NOTE: Folder is NOT recognized by pyload 0.4.9! - - -getInfo = create_getInfo(DailymotionComFolder) diff --git a/module/plugins/crypter/DataHuFolder.py b/module/plugins/crypter/DataHuFolder.py index ff8ae6b74..270a41b3c 100644 --- a/module/plugins/crypter/DataHuFolder.py +++ b/module/plugins/crypter/DataHuFolder.py @@ -2,21 +2,20 @@ import re -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class DataHuFolder(SimpleCrypter): __name__ = "DataHuFolder" __type__ = "crypter" - __version__ = "0.11" + __version__ = "0.12" __status__ = "testing" __pattern__ = r'http://(?:www\.)?data\.hu/dir/\w+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Data.hu folder decrypter plugin""" __license__ = "GPLv3" @@ -42,6 +41,3 @@ class DataHuFolder(SimpleCrypter): if u'Hib\xe1s jelsz\xf3' in self.data: #: Wrong password self.fail(_("Wrong password")) - - -getInfo = create_getInfo(DataHuFolder) diff --git a/module/plugins/crypter/DdlstorageComFolder.py b/module/plugins/crypter/DdlstorageComFolder.py index cf0b72071..62751503b 100644 --- a/module/plugins/crypter/DdlstorageComFolder.py +++ b/module/plugins/crypter/DdlstorageComFolder.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo +from module.plugins.internal.DeadCrypter import DeadCrypter class DdlstorageComFolder(DeadCrypter): __name__ = "DdlstorageComFolder" __type__ = "crypter" - __version__ = "0.07" + __version__ = "0.08" __status__ = "stable" __pattern__ = r'https?://(?:www\.)?ddlstorage\.com/folder/\w+' @@ -16,6 +16,3 @@ class DdlstorageComFolder(DeadCrypter): __license__ = "GPLv3" __authors__ = [("godofdream", "soilfiction@gmail.com"), ("stickell", "l.stickell@yahoo.it")] - - -getInfo = create_getInfo(DdlstorageComFolder) diff --git a/module/plugins/crypter/DepositfilesComFolder.py b/module/plugins/crypter/DepositfilesComFolder.py index 5b5a096ea..e34b07486 100644 --- a/module/plugins/crypter/DepositfilesComFolder.py +++ b/module/plugins/crypter/DepositfilesComFolder.py @@ -1,20 +1,19 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class DepositfilesComFolder(SimpleCrypter): __name__ = "DepositfilesComFolder" __type__ = "crypter" - __version__ = "0.05" + __version__ = "0.06" __status__ = "testing" __pattern__ = r'http://(?:www\.)?depositfiles\.com/folders/\w+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Depositfiles.com folder decrypter plugin""" __license__ = "GPLv3" @@ -22,6 +21,3 @@ class DepositfilesComFolder(SimpleCrypter): LINK_PATTERN = r'<div class="progressName".*?>\s*<a href="(.+?)" title=".+?" target="_blank">' - - -getInfo = create_getInfo(DepositfilesComFolder) diff --git a/module/plugins/crypter/Dereferer.py b/module/plugins/crypter/Dereferer.py index 8581134c0..52898eb62 100644 --- a/module/plugins/crypter/Dereferer.py +++ b/module/plugins/crypter/Dereferer.py @@ -8,15 +8,14 @@ from module.plugins.internal.SimpleCrypter import SimpleCrypter class Dereferer(SimpleCrypter): __name__ = "Dereferer" __type__ = "crypter" - __version__ = "0.24" + __version__ = "0.25" __status__ = "testing" __pattern__ = r'https?://(?:www\.)?(?:\w+\.)*?(?P<DOMAIN>(?:[\d.]+|[\w\-]{3,63}(?:\.[a-zA-Z]{2,}){1,2})(?:\:\d+)?)/.*?(?P<LINK>[\w^_]+://.+)' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Universal link dereferer""" __license__ = "GPLv3" diff --git a/module/plugins/crypter/DevhostStFolder.py b/module/plugins/crypter/DevhostStFolder.py index 68c069cfc..0d6753baa 100644 --- a/module/plugins/crypter/DevhostStFolder.py +++ b/module/plugins/crypter/DevhostStFolder.py @@ -6,21 +6,20 @@ import re import urlparse -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class DevhostStFolder(SimpleCrypter): __name__ = "DevhostStFolder" __type__ = "crypter" - __version__ = "0.09" + __version__ = "0.10" __status__ = "testing" __pattern__ = r'http://(?:www\.)?d-h\.st/users/(?P<USER>\w+)(/\?fld_id=(?P<ID>\d+))?' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """D-h.st folder decrypter plugin""" __license__ = "GPLv3" @@ -63,6 +62,3 @@ class DevhostStFolder(SimpleCrypter): self.log_debug("File name: %s" % self.pyfile.name, "File folder: %s" % self.pyfile.name) - - -getInfo = create_getInfo(DevhostStFolder) diff --git a/module/plugins/crypter/DlProtectCom.py b/module/plugins/crypter/DlProtectCom.py index 874815eee..c9c28ba48 100644 --- a/module/plugins/crypter/DlProtectCom.py +++ b/module/plugins/crypter/DlProtectCom.py @@ -1,26 +1,23 @@ # -*- coding: utf-8 -*- +import base64 import re import time -import base64 -from base64 import urlsafe_b64encode - -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class DlProtectCom(SimpleCrypter): __name__ = "DlProtectCom" __type__ = "crypter" - __version__ = "0.08" + __version__ = "0.09" __status__ = "testing" __pattern__ = r'https?://(?:www\.)?dl-protect\.com/((en|fr)/)?\w+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Dl-protect.com decrypter plugin""" __license__ = "GPLv3" @@ -31,6 +28,7 @@ class DlProtectCom(SimpleCrypter): OFFLINE_PATTERN = r'Unfortunately, the link you are looking for is not found' + # Information decoding # For test purposes def info_decode(self, i): @@ -43,7 +41,7 @@ class DlProtectCom(SimpleCrypter): i = base64.b64decode(i) # Split information infos = i.split('|') - assert(len(infos) == 4) + assert(len(infos) is 4) res = infos[0] user_agent = infos[1] plugins = [x.split(';') for x in infos[2].split('&')] @@ -72,7 +70,7 @@ class DlProtectCom(SimpleCrypter): # Sample configuration def conf(self): - useragent = self.get_config('useragent', plugin="UserAgentSwitcher") + useragent = self.pyload.api.getConfigValue("UserAgentSwitcher", "useragent", "plugin") conf = {'res': '1280x611x24', 'java': True, 'user_agent': useragent, @@ -98,7 +96,7 @@ class DlProtectCom(SimpleCrypter): else: mstime = int(round(time.time() * 1000)) - b64time = "_" + urlsafe_b64encode(str(mstime)).replace("=", "%3D") + b64time = "_" + base64.urlsafe_b64encode(str(mstime)).replace("=", "%3D") post_req.update({'i' : b64time, 'submitform': "Decrypt+link"}) @@ -124,6 +122,3 @@ class DlProtectCom(SimpleCrypter): # Filters interesting urls from ads return re.findall(r'<a href="(?P<id>[^/].+?)" target="_blank">(?P=id)</a>', self.data) - - -getInfo = create_getInfo(DlProtectCom) diff --git a/module/plugins/crypter/DuckCryptInfo.py b/module/plugins/crypter/DuckCryptInfo.py index c12ffc977..d16a0287d 100644 --- a/module/plugins/crypter/DuckCryptInfo.py +++ b/module/plugins/crypter/DuckCryptInfo.py @@ -4,20 +4,19 @@ import re import BeautifulSoup -from module.plugins.internal.Crypter import Crypter, create_getInfo +from module.plugins.internal.Crypter import Crypter class DuckCryptInfo(Crypter): __name__ = "DuckCryptInfo" __type__ = "crypter" - __version__ = "0.06" + __version__ = "0.07" __status__ = "testing" __pattern__ = r'http://(?:www\.)?duckcrypt\.info/(folder|wait|link)/(\w+)/?(\w*)' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("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__ = """DuckCrypt.info decrypter plugin""" __license__ = "GPLv3" @@ -60,6 +59,3 @@ class DuckCryptInfo(Crypter): self.links = [soup.find("iframe")['src']] if not self.links: self.log_info(_("No link found")) - - -getInfo = create_getInfo(DuckCryptInfo) diff --git a/module/plugins/crypter/DuploadOrgFolder.py b/module/plugins/crypter/DuploadOrgFolder.py index 897736669..3f96012ca 100644 --- a/module/plugins/crypter/DuploadOrgFolder.py +++ b/module/plugins/crypter/DuploadOrgFolder.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo +from module.plugins.internal.DeadCrypter import DeadCrypter class DuploadOrgFolder(DeadCrypter): __name__ = "DuploadOrgFolder" __type__ = "crypter" - __version__ = "0.06" + __version__ = "0.07" __status__ = "stable" __pattern__ = r'http://(?:www\.)?dupload\.org/folder/\d+' @@ -15,6 +15,3 @@ class DuploadOrgFolder(DeadCrypter): __description__ = """Dupload.org folder decrypter plugin""" __license__ = "GPLv3" __authors__ = [("stickell", "l.stickell@yahoo.it")] - - -getInfo = create_getInfo(DuploadOrgFolder) diff --git a/module/plugins/crypter/EasybytezComFolder.py b/module/plugins/crypter/EasybytezComFolder.py index 9fa2740b8..ef874dc1e 100644 --- a/module/plugins/crypter/EasybytezComFolder.py +++ b/module/plugins/crypter/EasybytezComFolder.py @@ -1,20 +1,19 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.XFSCrypter import XFSCrypter, create_getInfo +from module.plugins.internal.XFSCrypter import XFSCrypter class EasybytezComFolder(XFSCrypter): __name__ = "EasybytezComFolder" __type__ = "crypter" - __version__ = "0.15" + __version__ = "0.16" __status__ = "testing" __pattern__ = r'http://(?:www\.)?easybytez\.com/users/\d+/\d+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Easybytez.com folder decrypter plugin""" __license__ = "GPLv3" @@ -24,6 +23,3 @@ class EasybytezComFolder(XFSCrypter): PLUGIN_DOMAIN = "easybytez.com" LOGIN_ACCOUNT = True - - -getInfo = create_getInfo(EasybytezComFolder) diff --git a/module/plugins/crypter/EmbeduploadCom.py b/module/plugins/crypter/EmbeduploadCom.py index 4e232f38e..b0805aa80 100644 --- a/module/plugins/crypter/EmbeduploadCom.py +++ b/module/plugins/crypter/EmbeduploadCom.py @@ -2,23 +2,22 @@ import re -from module.plugins.internal.Crypter import Crypter, create_getInfo +from module.plugins.internal.Crypter import Crypter from module.network.HTTPRequest import BadHeader class EmbeduploadCom(Crypter): __name__ = "EmbeduploadCom" __type__ = "crypter" - __version__ = "0.06" + __version__ = "0.07" __status__ = "testing" __pattern__ = r'http://(?:www\.)?embedupload\.com/\?d=.+' - __config__ = [("activated" , "bool", "Activated" , True ), - ("use_premium" , "bool", "Use premium account if available" , True ), - ("use_subfolder" , "bool", "Save package to subfolder" , True ), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True ), - ("preferedHoster" , "str" , "Prefered hoster list (bar-separated)", "embedupload"), - ("ignoredHoster" , "str" , "Ignored hoster list (bar-separated)" , "" )] + __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" ), + ("preferedHoster" , "str" , "Prefered hoster list (bar-separated)", "embedupload"), + ("ignoredHoster" , "str" , "Ignored hoster list (bar-separated)" , "" )] __description__ = """EmbedUpload.com decrypter plugin""" __license__ = "GPLv3" @@ -34,7 +33,7 @@ class EmbeduploadCom(Crypter): m = re.findall(self.LINK_PATTERN, self.data) if m is not None: - prefered_set = set(self.get_config('preferedHoster').split('|')) + prefered_set = set(self.config.get('preferedHoster').split('|')) prefered_set = map(lambda s: s.lower().split('.')[0], prefered_set) self.log_debug("PF: %s" % prefered_set) @@ -43,7 +42,7 @@ class EmbeduploadCom(Crypter): self.links = self.get_location(tmp_links) if not self.links: - ignored_set = set(self.get_config('ignoredHoster').split('|')) + ignored_set = set(self.config.get('ignoredHoster').split('|')) ignored_set = map(lambda s: s.lower().split('.')[0], ignored_set) self.log_debug("IG: %s" % ignored_set) @@ -62,6 +61,3 @@ class EmbeduploadCom(Crypter): except BadHeader: pass return new_links - - -getInfo = create_getInfo(EmbeduploadCom) diff --git a/module/plugins/crypter/FilebeerInfoFolder.py b/module/plugins/crypter/FilebeerInfoFolder.py index b3c2e1903..ed2abf7ce 100644 --- a/module/plugins/crypter/FilebeerInfoFolder.py +++ b/module/plugins/crypter/FilebeerInfoFolder.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo +from module.plugins.internal.DeadCrypter import DeadCrypter class FilebeerInfoFolder(DeadCrypter): __name__ = "FilebeerInfoFolder" __type__ = "crypter" - __version__ = "0.06" + __version__ = "0.07" __status__ = "stable" __pattern__ = r'http://(?:www\.)?filebeer\.info/\d*~f\w+' @@ -15,6 +15,3 @@ class FilebeerInfoFolder(DeadCrypter): __description__ = """Filebeer.info folder decrypter plugin""" __license__ = "GPLv3" __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - - -getInfo = create_getInfo(FilebeerInfoFolder) diff --git a/module/plugins/crypter/FilecloudIoFolder.py b/module/plugins/crypter/FilecloudIoFolder.py index 61ff1de5c..d7f576559 100644 --- a/module/plugins/crypter/FilecloudIoFolder.py +++ b/module/plugins/crypter/FilecloudIoFolder.py @@ -1,20 +1,19 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class FilecloudIoFolder(SimpleCrypter): __name__ = "FilecloudIoFolder" __type__ = "crypter" - __version__ = "0.07" + __version__ = "0.08" __status__ = "testing" __pattern__ = r'https?://(?:www\.)?(filecloud\.io|ifile\.it)/_\w+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Filecloud.io folder decrypter plugin""" __license__ = "GPLv3" @@ -23,6 +22,3 @@ class FilecloudIoFolder(SimpleCrypter): LINK_PATTERN = r'href="(http://filecloud\.io/\w+)" title' NAME_PATTERN = r'>(?P<N>.+?) - filecloud\.io<' - - -getInfo = create_getInfo(FilecloudIoFolder) diff --git a/module/plugins/crypter/FilecryptCc.py b/module/plugins/crypter/FilecryptCc.py index d435f4b9d..517dc7652 100644 --- a/module/plugins/crypter/FilecryptCc.py +++ b/module/plugins/crypter/FilecryptCc.py @@ -7,9 +7,9 @@ import binascii import re import urlparse -from Crypto.Cipher import AES +import Crypto.Cipher -from module.plugins.internal.Crypter import Crypter, create_getInfo +from module.plugins.internal.Crypter import Crypter from module.plugins.captcha.ReCaptcha import ReCaptcha from module.plugins.captcha.SolveMedia import SolveMedia @@ -17,7 +17,7 @@ from module.plugins.captcha.SolveMedia import SolveMedia class FilecryptCc(Crypter): __name__ = "FilecryptCc" __type__ = "crypter" - __version__ = "0.22" + __version__ = "0.23" __status__ = "testing" __pattern__ = r'https?://(?:www\.)?filecrypt\.cc/Container/\w+' @@ -119,10 +119,11 @@ class FilecryptCc(Crypter): elif m3: #: Solvemedia captcha self.log_debug("Solvemedia Captcha URL: %s" % urlparse.urljoin(self.pyfile.url, m3.group(1))) - solvemedia = SolveMedia(self) + solvemedia = SolveMedia(self.pyfile) captcha_key = solvemedia.detect_key() if captcha_key: + self.captcha = solvemedia response, challenge = solvemedia.challenge(captcha_key) self.site_with_links = self.load(self.pyfile.url, post={'adcopy_response' : response, @@ -133,10 +134,12 @@ class FilecryptCc(Crypter): self.retry() else: - recaptcha = ReCaptcha(self) + recaptcha = ReCaptcha(self.pyfile) captcha_key = recaptcha.detect_key() if captcha_key: + self.captcha = recaptcha + try: response, challenge = recaptcha.challenge(captcha_key) @@ -202,7 +205,7 @@ class FilecryptCc(Crypter): #: Decrypt Key = key IV = key - obj = AES.new(Key, AES.MODE_CBC, IV) + obj = Crypto.Cipher.AES.new(Key, Crypto.Cipher.AES.MODE_CBC, IV) text = obj.decrypt(crypted.decode('base64')) #: Extract links @@ -210,6 +213,3 @@ class FilecryptCc(Crypter): links = filter(bool, text.split('\n')) return links - - -getInfo = create_getInfo(FilecryptCc) diff --git a/module/plugins/crypter/FilefactoryComFolder.py b/module/plugins/crypter/FilefactoryComFolder.py index e5623435f..f1793890f 100644 --- a/module/plugins/crypter/FilefactoryComFolder.py +++ b/module/plugins/crypter/FilefactoryComFolder.py @@ -1,20 +1,19 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class FilefactoryComFolder(SimpleCrypter): __name__ = "FilefactoryComFolder" __type__ = "crypter" - __version__ = "0.36" + __version__ = "0.37" __status__ = "testing" __pattern__ = r'https?://(?:www\.)?filefactory\.com/(?:f|folder)/\w+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Filefactory.com folder decrypter plugin""" __license__ = "GPLv3" @@ -30,6 +29,3 @@ class FilefactoryComFolder(SimpleCrypter): def load_page(self, page_n): return self.load(self.pyfile.url, get={'page': page_n, 'show': 100}) - - -getInfo = create_getInfo(FilefactoryComFolder) diff --git a/module/plugins/crypter/FilerNetFolder.py b/module/plugins/crypter/FilerNetFolder.py index b48b8b38e..6049485a4 100644 --- a/module/plugins/crypter/FilerNetFolder.py +++ b/module/plugins/crypter/FilerNetFolder.py @@ -1,20 +1,19 @@ import re -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class FilerNetFolder(SimpleCrypter): __name__ = "FilerNetFolder" __type__ = "crypter" - __version__ = "0.46" + __version__ = "0.47" __status__ = "testing" __pattern__ = r'https?://filer\.net/folder/\w{16}' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Filer.net decrypter plugin""" __license__ = "GPLv3" @@ -26,6 +25,3 @@ class FilerNetFolder(SimpleCrypter): NAME_PATTERN = r'<h3>(?P<N>.+?) - <small' OFFLINE_PATTERN = r'Nicht gefunden' - - -getInfo = create_getInfo(FilerNetFolder) diff --git a/module/plugins/crypter/FileserveComFolder.py b/module/plugins/crypter/FileserveComFolder.py index 80b1f974d..eff80fde1 100644 --- a/module/plugins/crypter/FileserveComFolder.py +++ b/module/plugins/crypter/FileserveComFolder.py @@ -2,20 +2,19 @@ import re -from module.plugins.internal.Crypter import Crypter, create_getInfo +from module.plugins.internal.Crypter import Crypter class FileserveComFolder(Crypter): __name__ = "FileserveComFolder" __type__ = "crypter" - __version__ = "0.16" + __version__ = "0.17" __status__ = "testing" __pattern__ = r'http://(?:www\.)?fileserve\.com/list/\w+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("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__ = """FileServe.com folder decrypter plugin""" __license__ = "GPLv3" @@ -39,6 +38,3 @@ class FileserveComFolder(Crypter): if new_links: self.links = [map(lambda s: "http://fileserve.com%s" % s, new_links)] - - -getInfo = create_getInfo(FileserveComFolder) diff --git a/module/plugins/crypter/FilesonicComFolder.py b/module/plugins/crypter/FilesonicComFolder.py index e9f0e9c4d..088c3ad82 100644 --- a/module/plugins/crypter/FilesonicComFolder.py +++ b/module/plugins/crypter/FilesonicComFolder.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo +from module.plugins.internal.DeadCrypter import DeadCrypter class FilesonicComFolder(DeadCrypter): __name__ = "FilesonicComFolder" __type__ = "crypter" - __version__ = "0.16" + __version__ = "0.17" __status__ = "stable" __pattern__ = r'http://(?:www\.)?filesonic\.com/folder/\w+' @@ -15,6 +15,3 @@ class FilesonicComFolder(DeadCrypter): __description__ = """Filesonic.com folder decrypter plugin""" __license__ = "GPLv3" __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - - -getInfo = create_getInfo(FilesonicComFolder) diff --git a/module/plugins/crypter/FilestubeCom.py b/module/plugins/crypter/FilestubeCom.py index 4e93e6aac..b56a4cc87 100644 --- a/module/plugins/crypter/FilestubeCom.py +++ b/module/plugins/crypter/FilestubeCom.py @@ -1,20 +1,19 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class FilestubeCom(SimpleCrypter): __name__ = "FilestubeCom" __type__ = "crypter" - __version__ = "0.09" + __version__ = "0.10" __status__ = "testing" __pattern__ = r'http://(?:www\.)?filestube\.(?:com|to)/\w+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Filestube.com decrypter plugin""" __license__ = "GPLv3" @@ -23,6 +22,3 @@ class FilestubeCom(SimpleCrypter): LINK_PATTERN = r'<a class=\"file-link-main(?: noref)?\" [^>]* href=\"(http://[^\"]+)' NAME_PATTERN = r'<h1\s*> (?P<N>.+?) download\s*</h1>' - - -getInfo = create_getInfo(FilestubeCom) diff --git a/module/plugins/crypter/FiletramCom.py b/module/plugins/crypter/FiletramCom.py index aacedf9ee..eb19c45e1 100644 --- a/module/plugins/crypter/FiletramCom.py +++ b/module/plugins/crypter/FiletramCom.py @@ -1,20 +1,19 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class FiletramCom(SimpleCrypter): __name__ = "FiletramCom" __type__ = "crypter" - __version__ = "0.06" + __version__ = "0.07" __status__ = "testing" __pattern__ = r'http://(?:www\.)?filetram\.com/[^/]+/.+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Filetram.com decrypter plugin""" __license__ = "GPLv3" @@ -24,6 +23,3 @@ class FiletramCom(SimpleCrypter): LINK_PATTERN = r'\s+(http://.+)' NAME_PATTERN = r'<title>(?P<N>.+?) - Free Download' - - -getInfo = create_getInfo(FiletramCom) diff --git a/module/plugins/crypter/FiredriveComFolder.py b/module/plugins/crypter/FiredriveComFolder.py index 0b9290e2e..b51c74845 100644 --- a/module/plugins/crypter/FiredriveComFolder.py +++ b/module/plugins/crypter/FiredriveComFolder.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo +from module.plugins.internal.DeadCrypter import DeadCrypter class FiredriveComFolder(DeadCrypter): __name__ = "FiredriveComFolder" __type__ = "crypter" - __version__ = "0.07" + __version__ = "0.08" __status__ = "stable" __pattern__ = r'https?://(?:www\.)?(firedrive|putlocker)\.com/share/.+' @@ -15,6 +15,3 @@ class FiredriveComFolder(DeadCrypter): __description__ = """Firedrive.com folder decrypter plugin""" __license__ = "GPLv3" __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - - -getInfo = create_getInfo(FiredriveComFolder) diff --git a/module/plugins/crypter/FourChanOrg.py b/module/plugins/crypter/FourChanOrg.py index 7fa38a736..c6a5fc5d6 100644 --- a/module/plugins/crypter/FourChanOrg.py +++ b/module/plugins/crypter/FourChanOrg.py @@ -5,20 +5,19 @@ import re import urlparse -from module.plugins.internal.Crypter import Crypter, create_getInfo +from module.plugins.internal.Crypter import Crypter class FourChanOrg(Crypter): __name__ = "FourChanOrg" __type__ = "crypter" - __version__ = "0.36" + __version__ = "0.37" __status__ = "testing" __pattern__ = r'http://(?:www\.)?boards\.4chan\.org/\w+/res/(\d+)' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("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__ = """4chan.org folder decrypter plugin""" __license__ = "GPLv3" @@ -29,6 +28,3 @@ class FourChanOrg(Crypter): pagehtml = self.load(pyfile.url) images = set(re.findall(r'(images\.4chan\.org/[^/]*/src/[^"<]+)', pagehtml)) self.links = [urlparse.urljoin("http://", image) for image in images] - - -getInfo = create_getInfo(FourChanOrg) diff --git a/module/plugins/crypter/FreakhareComFolder.py b/module/plugins/crypter/FreakhareComFolder.py index 23f235205..7afd44ec7 100644 --- a/module/plugins/crypter/FreakhareComFolder.py +++ b/module/plugins/crypter/FreakhareComFolder.py @@ -2,21 +2,20 @@ import re -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class FreakhareComFolder(SimpleCrypter): __name__ = "FreakhareComFolder" __type__ = "crypter" - __version__ = "0.07" + __version__ = "0.08" __status__ = "testing" __pattern__ = r'http://(?:www\.)?freakshare\.com/folder/.+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Freakhare.com folder decrypter plugin""" __license__ = "GPLv3" @@ -40,6 +39,3 @@ class FreakhareComFolder(SimpleCrypter): 'entrys': '20', 'page': page_n - 1, 'order': ''}) - - -getInfo = create_getInfo(FreakhareComFolder) diff --git a/module/plugins/crypter/FreetexthostCom.py b/module/plugins/crypter/FreetexthostCom.py index f9822bb0d..c3d8fe06d 100644 --- a/module/plugins/crypter/FreetexthostCom.py +++ b/module/plugins/crypter/FreetexthostCom.py @@ -2,21 +2,20 @@ import re -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class FreetexthostCom(SimpleCrypter): __name__ = "FreetexthostCom" __type__ = "crypter" - __version__ = "0.04" + __version__ = "0.05" __status__ = "testing" __pattern__ = r'http://(?:www\.)?freetexthost\.com/\w+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Freetexthost.com decrypter plugin""" __license__ = "GPLv3" @@ -29,6 +28,3 @@ class FreetexthostCom(SimpleCrypter): self.error(_("Unable to extract links")) links = m.group(1) return links.strip().split("<br />\r\n") - - -getInfo = create_getInfo(FreetexthostCom) diff --git a/module/plugins/crypter/FshareVnFolder.py b/module/plugins/crypter/FshareVnFolder.py index 0e0b8b4cc..1818c11c2 100644 --- a/module/plugins/crypter/FshareVnFolder.py +++ b/module/plugins/crypter/FshareVnFolder.py @@ -1,20 +1,19 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class FshareVnFolder(SimpleCrypter): __name__ = "FshareVnFolder" __type__ = "crypter" - __version__ = "0.05" + __version__ = "0.06" __status__ = "testing" __pattern__ = r'http://(?:www\.)?fshare\.vn/folder/.+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Fshare.vn folder decrypter plugin""" __license__ = "GPLv3" @@ -22,6 +21,3 @@ class FshareVnFolder(SimpleCrypter): LINK_PATTERN = r'<li class="w_80pc"><a href="(.+?)" target="_blank">' - - -getInfo = create_getInfo(FshareVnFolder) diff --git a/module/plugins/crypter/FurLy.py b/module/plugins/crypter/FurLy.py index 582c2dca0..75c799224 100644 --- a/module/plugins/crypter/FurLy.py +++ b/module/plugins/crypter/FurLy.py @@ -1,20 +1,19 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class FurLy(SimpleCrypter): __name__ = "FurLy" __type__ = "crypter" - __version__ = "0.04" + __version__ = "0.05" __status__ = "testing" __pattern__ = r'http://(?:www\.)?fur\.ly/(\d/)?\w+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Fur.ly decrypter plugin""" __license__ = "GPLv3" @@ -25,6 +24,3 @@ class FurLy(SimpleCrypter): LINK_PATTERN = r'urls\[\d+\] = "(.+?)"' OFFLINE_PATTERN = r'var output;\s*var total' - - -getInfo = create_getInfo(FurLy) diff --git a/module/plugins/crypter/Go4UpCom.py b/module/plugins/crypter/Go4UpCom.py index 9a3315399..33bde9889 100755 --- a/module/plugins/crypter/Go4UpCom.py +++ b/module/plugins/crypter/Go4UpCom.py @@ -3,22 +3,21 @@ import re import urlparse -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo -from module.plugins.internal.utils import json +from module.plugins.internal.SimpleCrypter import SimpleCrypter +from module.plugins.internal.misc import json class Go4UpCom(SimpleCrypter): __name__ = "Go4UpCom" __type__ = "crypter" - __version__ = "0.16" + __version__ = "0.17" __status__ = "testing" __pattern__ = r'http://go4up\.com/(dl/\w{12}|rd/\w{12}/\d+)' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Go4Up.com decrypter plugin""" __license__ = "GPLv3" @@ -35,13 +34,13 @@ class Go4UpCom(SimpleCrypter): def get_links(self): links = [] - preference = self.get_config("preferred_hoster") + preference = self.config.get("preferred_hoster") hosterslink_re = re.search(r'(/download/gethosts/.+?)"', self.data) if hosterslink_re: hosters = self.load(urlparse.urljoin("http://go4up.com/", hosterslink_re.group(1))) for hoster in json.loads(hosters): - if preference != 0 and preference != int(hoster["hostId"]): + if preference is not 0 and preference != int(hoster["hostId"]): continue pagelink_re = re.search(self.LINK_PATTERN, hoster["link"]) if pagelink_re: @@ -51,6 +50,3 @@ class Go4UpCom(SimpleCrypter): links.append(link_re.group(1)) return links - - -getInfo = create_getInfo(Go4UpCom) diff --git a/module/plugins/crypter/GooGl.py b/module/plugins/crypter/GooGl.py index 5d5a42274..68e99d1c6 100644 --- a/module/plugins/crypter/GooGl.py +++ b/module/plugins/crypter/GooGl.py @@ -1,21 +1,20 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo -from module.plugins.internal.utils import json +from module.plugins.internal.SimpleCrypter import SimpleCrypter +from module.plugins.internal.misc import json class GooGl(SimpleCrypter): __name__ = "GooGl" __type__ = "crypter" - __version__ = "0.06" + __version__ = "0.07" __status__ = "testing" __pattern__ = r'https?://(?:www\.)?goo\.gl/([a-zA-Z]+/)?\w+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Goo.gl decrypter plugin""" __license__ = "GPLv3" @@ -33,6 +32,3 @@ class GooGl(SimpleCrypter): self.log_debug("JSON data: " + rep) rep = json.loads(rep) return [rep['longUrl']] if "longUrl" in rep else None - - -getInfo = create_getInfo(GooGl) diff --git a/module/plugins/crypter/GoogledriveComFolder.py b/module/plugins/crypter/GoogledriveComFolder.py index fe517c222..44fcb76d3 100644 --- a/module/plugins/crypter/GoogledriveComFolder.py +++ b/module/plugins/crypter/GoogledriveComFolder.py @@ -1,20 +1,19 @@ # -*- coding: utf-8 -* -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class GoogledriveComFolder(SimpleCrypter): __name__ = "GoogledriveComFolder" __type__ = "crypter" - __version__ = "0.06" + __version__ = "0.07" __status__ = "testing" __pattern__ = r'https?://(?:www\.)?drive\.google\.com/folderview\?.*id=\w+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Drive.google.com folder decrypter plugin""" __license__ = "GPLv3" @@ -24,6 +23,3 @@ class GoogledriveComFolder(SimpleCrypter): NAME_PATTERN = r"folderName: '(?P<N>.+?)'" LINK_PATTERN = r'\[,"\w+"(?:,,".+?")?,"(.+?)"' OFFLINE_PATTERN = r'<TITLE>' - - -getInfo = create_getInfo(GoogledriveComFolder) diff --git a/module/plugins/crypter/HflixIn.py b/module/plugins/crypter/HflixIn.py index f0bcd7d3a..ebb140353 100644 --- a/module/plugins/crypter/HflixIn.py +++ b/module/plugins/crypter/HflixIn.py @@ -2,17 +2,18 @@ import re -from module.plugins.internal.Crypter import Crypter +from module.plugins.internal.SimpleCrypter import SimpleCrypter -class HflixIn(Crypter): - __name__ = "HflixIn" - __type__ = "crypter" - __version__ = "0.1" + +class HflixIn(SimpleCrypter): + __name__ = "HflixIn" + __type__ = "crypter" + __version__ = "0.11" __status__ = "testing" - __pattern__ = r"http://hflix.in/\w{5}" + __pattern__ = r'http://(www\.)?hflix\.in/\w+' - __description__ = """Hflix.in Decrypter Plugin""" + __description__ = """Hflix.in decrypter plugin""" __license__ = "GPLv3" __authors__ = [("GammaC0de", "nitzo2001[AT]yahoo[DOT]com")] diff --git a/module/plugins/crypter/HoerbuchIn.py b/module/plugins/crypter/HoerbuchIn.py index 6ed600f4d..ad9c8cce3 100644 --- a/module/plugins/crypter/HoerbuchIn.py +++ b/module/plugins/crypter/HoerbuchIn.py @@ -4,20 +4,19 @@ import re import BeautifulSoup -from module.plugins.internal.Crypter import Crypter, create_getInfo +from module.plugins.internal.Crypter import Crypter class HoerbuchIn(Crypter): __name__ = "HoerbuchIn" __type__ = "crypter" - __version__ = "0.64" + __version__ = "0.65" __status__ = "testing" __pattern__ = r'http://(?:www\.)?hoerbuch\.in/(wp/horbucher/\d+/.+/|tp/out\.php\?.+|protection/folder_\d+\.html)' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("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__ = """Hoerbuch.in decrypter plugin""" __license__ = "GPLv3" @@ -63,6 +62,3 @@ class HoerbuchIn(Crypter): links.append(self.req.lastEffectiveURL) return links - - -getInfo = create_getInfo(HoerbuchIn) diff --git a/module/plugins/crypter/HotfileComFolder.py b/module/plugins/crypter/HotfileComFolder.py index a06a24a54..a97fdf3f1 100644 --- a/module/plugins/crypter/HotfileComFolder.py +++ b/module/plugins/crypter/HotfileComFolder.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo +from module.plugins.internal.DeadCrypter import DeadCrypter class HotfileComFolder(DeadCrypter): __name__ = "HotfileComFolder" __type__ = "crypter" - __version__ = "0.34" + __version__ = "0.35" __status__ = "stable" __pattern__ = r'https?://(?:www\.)?hotfile\.com/list/\w+/\w+' @@ -15,6 +15,3 @@ class HotfileComFolder(DeadCrypter): __description__ = """Hotfile.com folder decrypter plugin""" __license__ = "GPLv3" __authors__ = [("RaNaN", "RaNaN@pyload.org")] - - -getInfo = create_getInfo(HotfileComFolder) diff --git a/module/plugins/crypter/ILoadTo.py b/module/plugins/crypter/ILoadTo.py index 7fdbeeaa0..e3c0c644c 100644 --- a/module/plugins/crypter/ILoadTo.py +++ b/module/plugins/crypter/ILoadTo.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo +from module.plugins.internal.DeadCrypter import DeadCrypter class ILoadTo(DeadCrypter): __name__ = "ILoadTo" __type__ = "crypter" - __version__ = "0.14" + __version__ = "0.15" __status__ = "stable" __pattern__ = r'http://(?:www\.)?iload\.to/go/\d+\-[\w\-.]+/' @@ -15,6 +15,3 @@ class ILoadTo(DeadCrypter): __description__ = """Iload.to decrypter plugin""" __license__ = "GPLv3" __authors__ = [("hzpz", None)] - - -getInfo = create_getInfo(ILoadTo) diff --git a/module/plugins/crypter/ImgurCom.py b/module/plugins/crypter/ImgurCom.py new file mode 100644 index 000000000..710f556c9 --- /dev/null +++ b/module/plugins/crypter/ImgurCom.py @@ -0,0 +1,30 @@ +import re + +from module.plugins.internal.SimpleCrypter import SimpleCrypter +from module.plugins.internal.misc import uniqify + + +class ImgurCom(SimpleCrypter): + __name__ = "ImgurCom" + __type__ = "crypter" + __version__ = "0.55" + __status__ = "testing" + + __pattern__ = r'https?://(?:www\.|m\.)?imgur\.com/(a|gallery|)/?\w{5,7}' + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + + __description__ = """Imgur.com decrypter plugin""" + __license__ = "GPLv3" + __authors__ = [("nath_schwarz", "nathan.notwhite@gmail.com")] + + + NAME_PATTERN = r'(?P<N>.+?) - Imgur' + LINK_PATTERN = r'i\.imgur\.com/\w{7}s?\.(?:jpeg|jpg|png|gif|apng)' + + + def get_links(self): + f = lambda url: "http://" + re.sub(r'(\w{7})s\.', r'\1.', url) + return uniqify(map(f, re.findall(self.LINK_PATTERN, self.data))) diff --git a/module/plugins/crypter/ImgurComAlbum.py b/module/plugins/crypter/ImgurComAlbum.py deleted file mode 100644 index 620b0e036..000000000 --- a/module/plugins/crypter/ImgurComAlbum.py +++ /dev/null @@ -1,34 +0,0 @@ -import re - -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo -from module.plugins.internal.utils import uniqify - - -class ImgurComAlbum(SimpleCrypter): - __name__ = "ImgurComAlbum" - __type__ = "crypter" - __version__ = "0.54" - __status__ = "testing" - - __pattern__ = r'https?://(?:www\.|m\.)?imgur\.com/(a|gallery|)/?\w{5,7}' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] - - __description__ = """Imgur.com decrypter plugin""" - __license__ = "GPLv3" - __authors__ = [("nath_schwarz", "nathan.notwhite@gmail.com")] - - - NAME_PATTERN = r'(?P<N>.+?) - Imgur' - LINK_PATTERN = r'i\.imgur\.com/\w{7}s?\.(?:jpeg|jpg|png|gif|apng)' - - - def get_links(self): - f = lambda url: "http://" + re.sub(r'(\w{7})s\.', r'\1.', url) - return uniqify(map(f, re.findall(self.LINK_PATTERN, self.data))) - - -getInfo = create_getInfo(ImgurComAlbum) diff --git a/module/plugins/crypter/JDlist.py b/module/plugins/crypter/JDlist.py index 29ad0d5fe..0c321ef80 100644 --- a/module/plugins/crypter/JDlist.py +++ b/module/plugins/crypter/JDlist.py @@ -1,19 +1,18 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.Crypter import Crypter, create_getInfo +from module.plugins.internal.Crypter import Crypter class JDlist(Crypter): __name__ = "JDlist" __type__ = "crypter" - __version__ = "0.03" + __version__ = "0.04" __status__ = "testing" __pattern__ = r'jdlist://(?P<LIST>[\w\+^_]+==)' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("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__ = """JDlist decrypter plugin""" __license__ = "GPLv3" @@ -22,6 +21,3 @@ class JDlist(Crypter): def decrypt(self, pyfile): self.links.extend(self.info['pattern']['LIST'].decode('base64').split(',')) - - -getInfo = create_getInfo(JDlist) diff --git a/module/plugins/crypter/LetitbitNetFolder.py b/module/plugins/crypter/LetitbitNetFolder.py index 635dc1737..03d656189 100644 --- a/module/plugins/crypter/LetitbitNetFolder.py +++ b/module/plugins/crypter/LetitbitNetFolder.py @@ -2,20 +2,19 @@ import re -from module.plugins.internal.Crypter import Crypter, create_getInfo +from module.plugins.internal.Crypter import Crypter class LetitbitNetFolder(Crypter): __name__ = "LetitbitNet" __type__ = "crypter" - __version__ = "0.15" + __version__ = "0.16" __status__ = "testing" __pattern__ = r'http://(?:www\.)?letitbit\.net/folder/\w+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("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__ = """Letitbit.net folder decrypter plugin""" __license__ = "GPLv3" @@ -35,6 +34,3 @@ class LetitbitNetFolder(Crypter): self.error(_("FOLDER_PATTERN not found")) self.links.extend(re.findall(self.LINK_PATTERN, folder.group(0))) - - -getInfo = create_getInfo(LetitbitNetFolder) diff --git a/module/plugins/crypter/LinkCryptWs.py b/module/plugins/crypter/LinkCryptWs.py index 9d421ad03..0cdfa1e34 100644 --- a/module/plugins/crypter/LinkCryptWs.py +++ b/module/plugins/crypter/LinkCryptWs.py @@ -3,12 +3,11 @@ import binascii import re +import Crypto.Cipher import pycurl -from Crypto.Cipher import AES - -from module.plugins.internal.Crypter import Crypter, create_getInfo -from module.plugins.internal.utils import html_unescape +from module.plugins.internal.Crypter import Crypter +from module.plugins.internal.misc import html_unescape, set_cookie class LinkCryptWs(Crypter): @@ -41,7 +40,7 @@ class LinkCryptWs(Crypter): #: Init self.fileid = re.match(self.__pattern__, self.pyfile.url).group('ID') - self.req.cj.setCookie("linkcrypt.ws", "language", "en") + set_cookie(req.cj, "linkcrypt.ws", "language", "en") #: Request package self.req.http.c.setopt(pycurl.USERAGENT, "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko") #: Better chance to not get those key-captchas @@ -74,7 +73,7 @@ class LinkCryptWs(Crypter): self.getunrarpw() #: Get package name and folder - package_name, folder_name = self.get_package_info() + pack_name, folder_name = self.get_package_info() #: Get the container definitions from script section self.get_container_html() @@ -88,7 +87,7 @@ class LinkCryptWs(Crypter): break if self.urls: - self.packages = [(package_name, self.urls, folder_name)] + self.packages = [(pack_name, self.urls, folder_name)] def is_online(self): @@ -183,7 +182,7 @@ class LinkCryptWs(Crypter): def handle_web_links(self): self.log_debug("Search for Web links ") - package_links = [] + pack_links = [] pattern = r'<form action="http://linkcrypt.ws/out.html"[^>]*?>.*?<input[^>]*?value="(.+?)"[^>]*?name="file"' ids = re.findall(pattern, self.data, re.I | re.S) @@ -199,12 +198,12 @@ class LinkCryptWs(Crypter): link2 = res[indexs:indexe] link2 = html_unescape(link2) - package_links.append(link2) + pack_links.append(link2) except Exception, detail: self.log_debug("Error decrypting Web link %s, %s" % (weblink_id, detail)) - return package_links + return pack_links def get_container_html(self): @@ -223,7 +222,7 @@ class LinkCryptWs(Crypter): def handle_container(self, type): - package_links = [] + pack_links = [] type = type.lower() self.log_debug('Search for %s Container links' % type.upper()) @@ -241,18 +240,18 @@ class LinkCryptWs(Crypter): self.log_debug("clink found") - package_name, folder_name = self.get_package_info() - self.log_debug("Added package with name %s.%s and container link %s" %( package_name, type, clink.group(1))) - self.pyload.api.uploadContainer('.'.join([package_name, type]), self.load(clink.group(1))) + pack_name, folder_name = self.get_package_info() + self.log_debug("Added package with name %s.%s and container link %s" %( pack_name, type, clink.group(1))) + self.pyload.api.uploadContainer('.'.join([pack_name, type]), self.load(clink.group(1))) return "Found it" - return package_links + return pack_links def handle_CNL2(self): self.log_debug("Search for CNL links") - package_links = [] + pack_links = [] cnl_line = None for line in self.container_html: @@ -267,13 +266,13 @@ class LinkCryptWs(Crypter): cnl_section = self.handle_javascript(cnl_line) (vcrypted, vjk) = self._get_cipher_params(cnl_section) for (crypted, jk) in zip(vcrypted, vjk): - package_links.extend(self._get_links(crypted, jk)) + pack_links.extend(self._get_links(crypted, jk)) except Exception: self.log_error(_("Unable to decrypt CNL links (JS Error) try to get over links"), trace=True) return self.handle_web_links() - return package_links + return pack_links def _get_cipher_params(self, cnl_section): @@ -299,7 +298,7 @@ class LinkCryptWs(Crypter): #: Decrypt Key = key IV = key - obj = AES.new(Key, AES.MODE_CBC, IV) + obj = Crypto.Cipher.AES.new(Key, Crypto.Cipher.AES.MODE_CBC, IV) text = obj.decrypt(crypted.decode('base64')) #: Extract links @@ -310,6 +309,3 @@ class LinkCryptWs(Crypter): self.log_debug("Package has %d links" % len(links)) return links - - -getInfo = create_getInfo(LinkCryptWs) diff --git a/module/plugins/crypter/LinkSaveIn.py b/module/plugins/crypter/LinkSaveIn.py index 45ef59063..06d1c48f8 100644 --- a/module/plugins/crypter/LinkSaveIn.py +++ b/module/plugins/crypter/LinkSaveIn.py @@ -1,20 +1,19 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class LinkSaveIn(SimpleCrypter): __name__ = "LinkSaveIn" __type__ = "crypter" - __version__ = "2.08" + __version__ = "2.09" __status__ = "testing" __pattern__ = r'https?://(?:www\.)?linksave\.in/\w+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """LinkSave.in decrypter plugin""" __license__ = "GPLv3" @@ -24,6 +23,3 @@ class LinkSaveIn(SimpleCrypter): COOKIES = [("linksave.in", "Linksave_Language", "english")] OFFLINE_PATTERN = r'>(Error )?404 -' - - -getInfo = create_getInfo(LinkSaveIn) diff --git a/module/plugins/crypter/LinkdecrypterCom.py b/module/plugins/crypter/LinkdecrypterCom.py index ad55ce55d..b3b0048e1 100644 --- a/module/plugins/crypter/LinkdecrypterCom.py +++ b/module/plugins/crypter/LinkdecrypterCom.py @@ -8,14 +8,13 @@ from module.plugins.internal.MultiCrypter import MultiCrypter class LinkdecrypterCom(MultiCrypter): __name__ = "LinkdecrypterCom" __type__ = "crypter" - __version__ = "0.35" + __version__ = "0.36" __status__ = "testing" __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), - ("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__ = """Linkdecrypter.com decrypter plugin""" __license__ = "GPLv3" diff --git a/module/plugins/crypter/LixIn.py b/module/plugins/crypter/LixIn.py index e3dcf9d89..3398ce87a 100644 --- a/module/plugins/crypter/LixIn.py +++ b/module/plugins/crypter/LixIn.py @@ -3,20 +3,19 @@ import re import urlparse -from module.plugins.internal.Crypter import Crypter, create_getInfo +from module.plugins.internal.Crypter import Crypter class LixIn(Crypter): __name__ = "LixIn" __type__ = "crypter" - __version__ = "0.26" + __version__ = "0.27" __status__ = "testing" __pattern__ = r'http://(?:www\.)?lix\.in/(?P<ID>.+)' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("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__ = """Lix.in decrypter plugin""" __license__ = "GPLv3" @@ -61,6 +60,3 @@ class LixIn(Crypter): else: self.links = [m.group(1)] self.log_debug("Found link %s, adding to package" % self.links[0]) - - -getInfo = create_getInfo(LixIn) diff --git a/module/plugins/crypter/LofCc.py b/module/plugins/crypter/LofCc.py index 4836bbb67..16d3c0d63 100644 --- a/module/plugins/crypter/LofCc.py +++ b/module/plugins/crypter/LofCc.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo +from module.plugins.internal.DeadCrypter import DeadCrypter class LofCc(DeadCrypter): __name__ = "LofCc" __type__ = "crypter" - __version__ = "0.24" + __version__ = "0.25" __status__ = "stable" __pattern__ = r'http://(?:www\.)?lof\.cc/(.+)' @@ -15,6 +15,3 @@ class LofCc(DeadCrypter): __description__ = """Lof.cc decrypter plugin""" __license__ = "GPLv3" __authors__ = [("mkaay", "mkaay@mkaay.de")] - - -getInfo = create_getInfo(LofCc) diff --git a/module/plugins/crypter/MBLinkInfo.py b/module/plugins/crypter/MBLinkInfo.py index ba0952d7d..2e765b2c9 100644 --- a/module/plugins/crypter/MBLinkInfo.py +++ b/module/plugins/crypter/MBLinkInfo.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo +from module.plugins.internal.DeadCrypter import DeadCrypter class MBLinkInfo(DeadCrypter): __name__ = "MBLinkInfo" __type__ = "crypter" - __version__ = "0.06" + __version__ = "0.07" __status__ = "stable" __pattern__ = r'http://(?:www\.)?mblink\.info/?\?id=(\d+)' @@ -16,6 +16,3 @@ class MBLinkInfo(DeadCrypter): __license__ = "GPLv3" __authors__ = [("Gummibaer", "Gummibaer@wiki-bierkiste.de"), ("stickell", "l.stickell@yahoo.it")] - - -getInfo = create_getInfo(MBLinkInfo) diff --git a/module/plugins/crypter/MediafireComFolder.py b/module/plugins/crypter/MediafireComFolder.py index 604d78687..b0e2e5e51 100644 --- a/module/plugins/crypter/MediafireComFolder.py +++ b/module/plugins/crypter/MediafireComFolder.py @@ -2,21 +2,20 @@ import re -from module.plugins.internal.Crypter import Crypter, create_getInfo -from module.plugins.internal.utils import json +from module.plugins.internal.Crypter import Crypter +from module.plugins.internal.misc import json class MediafireComFolder(Crypter): __name__ = "MediafireComFolder" __type__ = "crypter" - __version__ = "0.20" + __version__ = "0.21" __status__ = "testing" __pattern__ = r'http://(?:www\.)?mediafire\.com/(folder/|\?sharekey=|\?\w{13}($|[/#]))' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("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__ = """Mediafire.com folder decrypter plugin""" __license__ = "GPLv3" @@ -73,22 +72,20 @@ class MediafireComFolder(Crypter): folder_key = m.group(1) self.log_debug("FOLDER KEY: %s" % folder_key) - json_resp = json.loads(self.load("http://www.mediafire.com/api/folder/get_info.php", - get={'folder_key' : folder_key, - 'response_format': "json", - 'version' : 1})) - # self.log_info(json_resp) - if json_resp['response']['result'] == "Success": - for link in json_resp['response']['folder_info']['files']: + html = self.load("http://www.mediafire.com/api/folder/get_info.php", + get={'folder_key' : folder_key, + 'response_format': "json", + 'version' : 1}) + json_data = json.loads(html) + # self.log_info(json_data) + if json_data['response']['result'] == "Success": + for link in json_data['response']['folder_info']['files']: self.links.append("http://www.mediafire.com/file/%s" % link['quickkey']) else: - self.fail(json_resp['response']['message']) + self.fail(json_data['response']['message']) elif result is 1: self.offline() else: self.links.append(url) - - -getInfo = create_getInfo(MediafireComFolder) diff --git a/module/plugins/crypter/MegaCoNzFolder.py b/module/plugins/crypter/MegaCoNzFolder.py index 01e8338ac..442e6beea 100644 --- a/module/plugins/crypter/MegaCoNzFolder.py +++ b/module/plugins/crypter/MegaCoNzFolder.py @@ -2,20 +2,19 @@ import re -from module.plugins.internal.Crypter import Crypter, create_getInfo +from module.plugins.internal.Crypter import Crypter class MegaCoNzFolder(Crypter): __name__ = "MegaCoNzFolder" __type__ = "crypter" - __version__ = "0.09" + __version__ = "0.10" __status__ = "broken" __pattern__ = r'(https?://(?:www\.)?mega(\.co)?\.nz/|mega:|chrome:.+?)#F!(?P<ID>[\w^_]+)!(?P<KEY>[\w,\\-]+)' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("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__ = """Mega.co.nz folder decrypter plugin""" __license__ = "GPLv3" @@ -30,6 +29,3 @@ class MegaCoNzFolder(Crypter): url = "https://mega.co.nz/#F!%s!%s" % re.match(self.__pattern__, pyfile.url).groups() self.data = self.load("http://rapidgen.org/linkfinder", post={'linklisturl': url}) self.links = re.findall(r'(https://mega(\.co)?\.nz/#N!.+?)<', self.data) - - -getInfo = create_getInfo(MegaCoNzFolder) diff --git a/module/plugins/crypter/MegaRapidCzFolder.py b/module/plugins/crypter/MegaRapidCzFolder.py index c49f6297e..05dec6e16 100644 --- a/module/plugins/crypter/MegaRapidCzFolder.py +++ b/module/plugins/crypter/MegaRapidCzFolder.py @@ -1,20 +1,19 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class MegaRapidCzFolder(SimpleCrypter): __name__ = "MegaRapidCzFolder" __type__ = "crypter" - __version__ = "0.06" + __version__ = "0.07" __status__ = "testing" __pattern__ = r'http://(?:www\.)?(share|mega)rapid\.cz/slozka/\d+/\w+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Share-Rapid.com folder decrypter plugin""" __license__ = "GPLv3" @@ -22,6 +21,3 @@ class MegaRapidCzFolder(SimpleCrypter): LINK_PATTERN = r'<td class="soubor".*?><a href="(.+?)">' - - -getInfo = create_getInfo(MegaRapidCzFolder) diff --git a/module/plugins/crypter/MegauploadComFolder.py b/module/plugins/crypter/MegauploadComFolder.py index 532ab9b88..9161b228c 100644 --- a/module/plugins/crypter/MegauploadComFolder.py +++ b/module/plugins/crypter/MegauploadComFolder.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo +from module.plugins.internal.DeadCrypter import DeadCrypter class MegauploadComFolder(DeadCrypter): __name__ = "MegauploadComFolder" __type__ = "crypter" - __version__ = "0.06" + __version__ = "0.07" __status__ = "stable" __pattern__ = r'http://(?:www\.)?megaupload\.com/(\?f|xml/folderfiles\.php\?.*&?folderid)=\w+' @@ -15,6 +15,3 @@ class MegauploadComFolder(DeadCrypter): __description__ = """Megaupload.com folder decrypter plugin""" __license__ = "GPLv3" __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - - -getInfo = create_getInfo(MegauploadComFolder) diff --git a/module/plugins/crypter/Movie2KTo.py b/module/plugins/crypter/Movie2KTo.py index 6c0abfd88..d2b365178 100644 --- a/module/plugins/crypter/Movie2KTo.py +++ b/module/plugins/crypter/Movie2KTo.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo +from module.plugins.internal.DeadCrypter import DeadCrypter class Movie2KTo(DeadCrypter): __name__ = "Movie2KTo" __type__ = "crypter" - __version__ = "0.54" + __version__ = "0.55" __status__ = "stable" __pattern__ = r'http://(?:www\.)?movie2k\.to/(.+)\.html' @@ -15,6 +15,3 @@ class Movie2KTo(DeadCrypter): __description__ = """Movie2k.to decrypter plugin""" __license__ = "GPLv3" __authors__ = [("4Christopher", "4Christopher@gmx.de")] - - -getInfo = create_getInfo(Movie2KTo) diff --git a/module/plugins/crypter/MultiUpOrg.py b/module/plugins/crypter/MultiUpOrg.py index 82dd64eb0..a546ecc22 100644 --- a/module/plugins/crypter/MultiUpOrg.py +++ b/module/plugins/crypter/MultiUpOrg.py @@ -3,21 +3,20 @@ import re import urlparse -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class MultiUpOrg(SimpleCrypter): __name__ = "MultiUpOrg" __type__ = "crypter" - __version__ = "0.07" + __version__ = "0.08" __status__ = "testing" __pattern__ = r'http://(?:www\.)?multiup\.org/(en|fr)/(?P<TYPE>project|download|mirror)/\w+(/\w+)?' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """MultiUp.org crypter plugin""" __license__ = "GPLv3" @@ -40,6 +39,3 @@ class MultiUpOrg(SimpleCrypter): self.data = self.load(mirror_page) return re.findall(pattern, self.data) - - -getInfo = create_getInfo(MultiUpOrg) diff --git a/module/plugins/crypter/MultiloadCz.py b/module/plugins/crypter/MultiloadCz.py index 87a900a2a..657f101d6 100644 --- a/module/plugins/crypter/MultiloadCz.py +++ b/module/plugins/crypter/MultiloadCz.py @@ -2,13 +2,13 @@ import re -from module.plugins.internal.Crypter import Crypter, create_getInfo +from module.plugins.internal.Crypter import Crypter class MultiloadCz(Crypter): __name__ = "MultiloadCz" __type__ = "crypter" - __version__ = "0.44" + __version__ = "0.45" __status__ = "testing" __pattern__ = r'http://(?:[^/]*\.)?multiload\.cz/(stahnout|slozka)/.+' @@ -38,12 +38,9 @@ class MultiloadCz(Crypter): else: m = re.findall(self.LINK_PATTERN, self.data) if m is not None: - prefered_set = set(self.get_config('usedHoster').split('|')) + prefered_set = set(self.config.get('usedHoster').split('|')) self.links.extend(x[1] for x in m if x[0] in prefered_set) if not self.links: - ignored_set = set(self.get_config('ignoredHoster').split('|')) + ignored_set = set(self.config.get('ignoredHoster').split('|')) self.links.extend(x[1] for x in m if x[0] not in ignored_set) - - -getInfo = create_getInfo(MultiloadCz) diff --git a/module/plugins/crypter/MultiuploadCom.py b/module/plugins/crypter/MultiuploadCom.py index 6b7ea9f16..662c624d0 100644 --- a/module/plugins/crypter/MultiuploadCom.py +++ b/module/plugins/crypter/MultiuploadCom.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo +from module.plugins.internal.DeadCrypter import DeadCrypter class MultiuploadCom(DeadCrypter): __name__ = "MultiuploadCom" __type__ = "crypter" - __version__ = "0.05" + __version__ = "0.06" __status__ = "stable" __pattern__ = r'http://(?:www\.)?multiupload\.(com|nl)/\w+' @@ -15,6 +15,3 @@ class MultiuploadCom(DeadCrypter): __description__ = """MultiUpload.com decrypter plugin""" __license__ = "GPLv3" __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - - -getInfo = create_getInfo(MultiuploadCom) diff --git a/module/plugins/crypter/NCryptIn.py b/module/plugins/crypter/NCryptIn.py index a60e99ce7..d1a2b3bcc 100644 --- a/module/plugins/crypter/NCryptIn.py +++ b/module/plugins/crypter/NCryptIn.py @@ -3,23 +3,22 @@ import binascii import re -from Crypto.Cipher import AES +import Crypto.Cipher -from module.plugins.internal.Crypter import Crypter, create_getInfo +from module.plugins.internal.Crypter import Crypter from module.plugins.captcha.ReCaptcha import ReCaptcha class NCryptIn(Crypter): __name__ = "NCryptIn" __type__ = "crypter" - __version__ = "1.39" + __version__ = "1.40" __status__ = "testing" __pattern__ = r'http://(?:www\.)?ncrypt\.in/(?P<TYPE>folder|link|frame)-([^/\?]+)' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("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__ = """NCrypt.in decrypter plugin""" __license__ = "GPLv3" @@ -43,13 +42,13 @@ class NCryptIn(Crypter): def decrypt(self, pyfile): #: Init self.package = pyfile.package() - package_links = [] - package_name = self.package.name + pack_links = [] + pack_name = self.package.name folder_name = self.package.folder #: Deal with single links if self.is_single_link(): - package_links.extend(self.handle_single_link()) + pack_links.extend(self.handle_single_link()) #: Deal with folders else: @@ -67,18 +66,18 @@ class NCryptIn(Crypter): self.handle_errors() #: Prepare package name and folder - (package_name, folder_name) = self.get_package_info() + (pack_name, folder_name) = self.get_package_info() #: Extract package links for link_source_type in self.links_source_order: - package_links.extend(self.handle_link_source(link_source_type)) - if package_links: #: Use only first source which provides links + pack_links.extend(self.handle_link_source(link_source_type)) + if pack_links: #: Use only first source which provides links break - package_links = set(package_links) + pack_links = set(pack_links) #: Pack and return links - if package_links: - self.packages = [(package_name, package_links, folder_name)] + if pack_links: + self.packages = [(pack_name, pack_links, folder_name)] def is_single_link(self): @@ -157,8 +156,8 @@ class NCryptIn(Crypter): self.log_debug("ReCaptcha protected") captcha_key = re.search(r'\?k=(.*?)"', form).group(1) self.log_debug("Resolving ReCaptcha with key [%s]" % captcha_key) - recaptcha = ReCaptcha(self) - response, challenge = recaptcha.challenge(captcha_key) + self.captcha = ReCaptcha(self.pyfile) + response, challenge = self.captcha.challenge(captcha_key) postData['recaptcha_challenge_field'] = challenge postData['recaptcha_response_field'] = response @@ -210,44 +209,44 @@ class NCryptIn(Crypter): def handle_single_link(self): self.log_debug("Handling Single link") - package_links = [] + pack_links = [] #: Decrypt single link decrypted_link = self.decrypt_link(self.pyfile.url) if decrypted_link: - package_links.append(decrypted_link) + pack_links.append(decrypted_link) - return package_links + return pack_links def handle_CNL2(self): self.log_debug("Handling CNL2 links") - package_links = [] + pack_links = [] if 'cnl2_output' in self.cleaned_html: try: (vcrypted, vjk) = self._get_cipher_params() for (crypted, jk) in zip(vcrypted, vjk): - package_links.extend(self._get_links(crypted, jk)) + pack_links.extend(self._get_links(crypted, jk)) except Exception: self.fail(_("Unable to decrypt CNL2 links")) - return package_links + return pack_links def handle_containers(self): self.log_debug("Handling Container links") - package_links = [] + pack_links = [] pattern = r'/container/(rsdf|dlc|ccf)/(\w+)' containersLinks = re.findall(pattern, self.data) self.log_debug("Decrypting %d Container links" % len(containersLinks)) for containerLink in containersLinks: link = "http://ncrypt.in/container/%s/%s.%s" % (containerLink[0], containerLink[1], containerLink[0]) - package_links.append(link) + pack_links.append(link) - return package_links + return pack_links def handle_web_links(self): @@ -255,15 +254,15 @@ class NCryptIn(Crypter): pattern = r'(http://ncrypt\.in/link-.*?=)' links = re.findall(pattern, self.data) - package_links = [] + pack_links = [] self.log_debug("Decrypting %d Web links" % len(links)) for i, link in enumerate(links): self.log_debug("Decrypting Web link %d, %s" % (i + 1, link)) decrypted_link = self.decrypt(link) if decrypted_link: - package_links.append(decrypted_link) + pack_links.append(decrypted_link) - return package_links + return pack_links def decrypt_link(self, link): @@ -301,7 +300,7 @@ class NCryptIn(Crypter): #: Decrypt Key = key IV = key - obj = AES.new(Key, AES.MODE_CBC, IV) + obj = Crypto.Cipher.AES.new(Key, Crypto.Cipher.AES.MODE_CBC, IV) text = obj.decrypt(crypted.decode('base64')) #: Extract links @@ -311,6 +310,3 @@ class NCryptIn(Crypter): #: Log and return self.log_debug("Block has %d links" % len(links)) return links - - -getInfo = create_getInfo(NCryptIn) diff --git a/module/plugins/crypter/NetfolderIn.py b/module/plugins/crypter/NetfolderIn.py index eba13d1b6..1e25ee0d1 100644 --- a/module/plugins/crypter/NetfolderIn.py +++ b/module/plugins/crypter/NetfolderIn.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo +from module.plugins.internal.DeadCrypter import DeadCrypter class NetfolderIn(DeadCrypter): __name__ = "NetfolderIn" __type__ = "crypter" - __version__ = "0.76" + __version__ = "0.77" __status__ = "stable" __pattern__ = r'http://(?:www\.)?netfolder\.(in|me)/(folder\.php\?folder_id=)?(?P<ID>\w+)(?(1)|/\w+)' @@ -16,6 +16,3 @@ class NetfolderIn(DeadCrypter): __license__ = "GPLv3" __authors__ = [("RaNaN", "RaNaN@pyload.org"), ("fragonib", "fragonib[AT]yahoo[DOT]es")] - - -getInfo = create_getInfo(NetfolderIn) diff --git a/module/plugins/crypter/NitroflareComFolder.py b/module/plugins/crypter/NitroflareComFolder.py index ae7ca27da..df6564e18 100644 --- a/module/plugins/crypter/NitroflareComFolder.py +++ b/module/plugins/crypter/NitroflareComFolder.py @@ -1,21 +1,20 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo -from module.plugins.internal.utils import json +from module.plugins.internal.SimpleCrypter import SimpleCrypter +from module.plugins.internal.misc import json class NitroflareComFolder(SimpleCrypter): __name__ = "NitroflareComFolder" __type__ = "crypter" - __version__ = "0.06" + __version__ = "0.07" __status__ = "testing" __pattern__ = r'https?://(?:www\.)?nitroflare\.com/folder/(?P<USER>\d+)/(?P<ID>[\w=]+)' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Nitroflare.com folder decrypter plugin""" __license__ = "GPLv3" @@ -23,17 +22,15 @@ class NitroflareComFolder(SimpleCrypter): def get_links(self): - res = json.loads(self.load("http://nitroflare.com/ajax/folder.php", - post={'userId' : self.info['pattern']['USER'], - 'folder' : self.info['pattern']['ID'], - 'page' : 1, - 'perPage': 10000})) + html = self.load("http://nitroflare.com/ajax/folder.php", + post={'userId' : self.info['pattern']['USER'], + 'folder' : self.info['pattern']['ID'], + 'page' : 1, + 'perPage': 10000}) + res = json.loads(html) if res['name']: self.pyfile.name = res['name'] else: self.offline() return [link['url'] for link in res['files']] if 'files' in res else None - - -getInfo = create_getInfo(NitroflareComFolder) diff --git a/module/plugins/crypter/NosvideoCom.py b/module/plugins/crypter/NosvideoCom.py index a8d5d741d..fe989420f 100644 --- a/module/plugins/crypter/NosvideoCom.py +++ b/module/plugins/crypter/NosvideoCom.py @@ -1,20 +1,19 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class NosvideoCom(SimpleCrypter): __name__ = "NosvideoCom" __type__ = "crypter" - __version__ = "0.06" + __version__ = "0.07" __status__ = "testing" __pattern__ = r'http://(?:www\.)?nosvideo\.com/\?v=\w+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Nosvideo.com decrypter plugin""" __license__ = "GPLv3" @@ -23,6 +22,3 @@ class NosvideoCom(SimpleCrypter): LINK_PATTERN = r'href="(http://(?:w{3}\.)?nosupload\.com/\?d=\w+)"' NAME_PATTERN = r'<[tT]itle>Watch (?P<N>.+?)<' - - -getInfo = create_getInfo(NosvideoCom) diff --git a/module/plugins/crypter/OronComFolder.py b/module/plugins/crypter/OronComFolder.py index ad650d751..85b61f437 100644 --- a/module/plugins/crypter/OronComFolder.py +++ b/module/plugins/crypter/OronComFolder.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo +from module.plugins.internal.DeadCrypter import DeadCrypter class OronComFolder(DeadCrypter): __name__ = "OronComFolder" __type__ = "crypter" - __version__ = "0.15" + __version__ = "0.16" __status__ = "stable" __pattern__ = r'http://(?:www\.)?oron\.com/folder/\w+' @@ -15,6 +15,3 @@ class OronComFolder(DeadCrypter): __description__ = """Oron.com folder decrypter plugin""" __license__ = "GPLv3" __authors__ = [("DHMH", "webmaster@pcProfil.de")] - - -getInfo = create_getInfo(OronComFolder) diff --git a/module/plugins/crypter/PastebinCom.py b/module/plugins/crypter/PastebinCom.py index fe759320f..8b0f9ecf0 100644 --- a/module/plugins/crypter/PastebinCom.py +++ b/module/plugins/crypter/PastebinCom.py @@ -1,20 +1,19 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class PastebinCom(SimpleCrypter): __name__ = "PastebinCom" __type__ = "crypter" - __version__ = "0.07" + __version__ = "0.08" __status__ = "testing" __pattern__ = r'https://(?:www\.)?pastebin\.com/(.+i=)?(?P<ID>\w{8})' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Pastebin.com decrypter plugin""" __license__ = "GPLv3" @@ -25,6 +24,3 @@ class PastebinCom(SimpleCrypter): NAME_PATTERN = r'<div class="paste_box_line1" title="(?P<N>.+?)"' LINK_PATTERN = r'<div class="de\d+">(.+?)<' - - -getInfo = create_getInfo(PastebinCom) diff --git a/module/plugins/crypter/PastedCo.py b/module/plugins/crypter/PastedCo.py index 204853ed1..f6988ed11 100644 --- a/module/plugins/crypter/PastedCo.py +++ b/module/plugins/crypter/PastedCo.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.Crypter import Crypter, create_getInfo +from module.plugins.internal.Crypter import Crypter import re @@ -8,7 +8,7 @@ import re class PastedCo(Crypter): __name__ = "PastedCo" __type__ = "crypter" - __version__ = "0.04" + __version__ = "0.05" __status__ = "testing" __pattern__ = r'http://pasted\.co/\w+' @@ -27,8 +27,8 @@ class PastedCo(Crypter): def decrypt(self, pyfile): package = pyfile.package() - package_name = package.name - package_folder = package.folder + pack_name = package.name + pack_folder = package.folder html = self.load(pyfile.url, decode = True).splitlines() fs_url = None FS_URL_RE = re.compile('%s/fullscreen\.php\?hash=[0-9a-f]*' % pyfile.url) @@ -42,7 +42,4 @@ class PastedCo(Crypter): urls = self.load(fs_url, decode = True) urls = urls[urls.find(PastedCo.FS_URL_PREFIX) + len(PastedCo.FS_URL_PREFIX):] urls = urls[:urls.find(PastedCo.FS_URL_SUFFIX)].splitlines() - self.packages.append((package_name, urls, package_folder)) - - -getInfo = create_getInfo(PastedCo) + self.packages.append((pack_name, urls, pack_folder)) diff --git a/module/plugins/crypter/QuickshareCzFolder.py b/module/plugins/crypter/QuickshareCzFolder.py index c2ab3e144..ad0bf5704 100644 --- a/module/plugins/crypter/QuickshareCzFolder.py +++ b/module/plugins/crypter/QuickshareCzFolder.py @@ -2,20 +2,19 @@ import re -from module.plugins.internal.Crypter import Crypter, create_getInfo +from module.plugins.internal.Crypter import Crypter class QuickshareCzFolder(Crypter): __name__ = "QuickshareCzFolder" __type__ = "crypter" - __version__ = "0.15" + __version__ = "0.16" __status__ = "testing" __pattern__ = r'http://(?:www\.)?quickshare\.cz/slozka-\d+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("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__ = """Quickshare.cz folder decrypter plugin""" __license__ = "GPLv3" @@ -33,6 +32,3 @@ class QuickshareCzFolder(Crypter): if m is None: self.error(_("FOLDER_PATTERN not found")) self.links.extend(re.findall(self.LINK_PATTERN, m.group(1))) - - -getInfo = create_getInfo(QuickshareCzFolder) diff --git a/module/plugins/crypter/RSLayerCom.py b/module/plugins/crypter/RSLayerCom.py index b59b4f108..02d97b4c8 100644 --- a/module/plugins/crypter/RSLayerCom.py +++ b/module/plugins/crypter/RSLayerCom.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo +from module.plugins.internal.DeadCrypter import DeadCrypter class RSLayerCom(DeadCrypter): __name__ = "RSLayerCom" __type__ = "crypter" - __version__ = "0.24" + __version__ = "0.25" __status__ = "stable" __pattern__ = r'http://(?:www\.)?rs-layer\.com/directory-' @@ -15,6 +15,3 @@ class RSLayerCom(DeadCrypter): __description__ = """RS-Layer.com decrypter plugin""" __license__ = "GPLv3" __authors__ = [("hzpz", None)] - - -getInfo = create_getInfo(RSLayerCom) diff --git a/module/plugins/crypter/RelinkUs.py b/module/plugins/crypter/RelinkUs.py index d8933be0a..621c80216 100644 --- a/module/plugins/crypter/RelinkUs.py +++ b/module/plugins/crypter/RelinkUs.py @@ -6,23 +6,22 @@ import binascii import os import re -from Crypto.Cipher import AES +import Crypto.Cipher -from module.plugins.internal.Crypter import Crypter, create_getInfo -from module.plugins.internal.utils import fs_join +from module.plugins.internal.Crypter import Crypter +from module.plugins.internal.misc import fsjoin class RelinkUs(Crypter): __name__ = "RelinkUs" __type__ = "crypter" - __version__ = "3.16" + __version__ = "3.17" __status__ = "testing" __pattern__ = r'http://(?:www\.)?relink\.us/(f/|((view|go)\.php\?id=))(?P<ID>.+)' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("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__ = """Relink.us decrypter plugin""" __license__ = "GPLv3" @@ -87,19 +86,19 @@ class RelinkUs(Crypter): self.handle_errors() #: Get package name and folder - (package_name, folder_name) = self.get_package_info() + (pack_name, folder_name) = self.get_package_info() #: Extract package links - package_links = [] + pack_links = [] for sources in self.PREFERRED_LINK_SOURCES: - package_links.extend(self.handle_link_source(sources)) - if package_links: #: Use only first source which provides links + pack_links.extend(self.handle_link_source(sources)) + if pack_links: #: Use only first source which provides links break - package_links = set(package_links) + pack_links = set(pack_links) #: Pack - if package_links: - self.packages = [(package_name, package_links, folder_name)] + if pack_links: + self.packages = [(pack_name, pack_links, folder_name)] def init_package(self, pyfile): @@ -197,24 +196,24 @@ class RelinkUs(Crypter): def handle_CNL2Links(self): self.log_debug("Search for CNL2 links") - package_links = [] + pack_links = [] m = re.search(self.CNL2_FORM_REGEX, self.data, re.S) if m is not None: cnl2_form = m.group(1) try: (vcrypted, vjk) = self._get_cipher_params(cnl2_form) for (crypted, jk) in zip(vcrypted, vjk): - package_links.extend(self._get_links(crypted, jk)) + pack_links.extend(self._get_links(crypted, jk)) except Exception: self.log_debug("Unable to decrypt CNL2 links", trace=True) - return package_links + return pack_links def handle_DLC_links(self): self.log_debug("Search for DLC links") - package_links = [] + pack_links = [] m = re.search(self.DLC_LINK_REGEX, self.data) if m is not None: container_url = self.DLC_DOWNLOAD_URL + "?id=%s&dlc=1" % self.fileid @@ -222,21 +221,21 @@ class RelinkUs(Crypter): try: dlc = self.load(container_url) dlc_filename = self.fileid + ".dlc" - dlc_filepath = fs_join(self.pyload.config.get("general", "download_folder"), dlc_filename) + dlc_filepath = fsjoin(self.pyload.config.get("general", "download_folder"), dlc_filename) with open(dlc_filepath, "wb") as f: f.write(dlc) - package_links.append(dlc_filepath) + pack_links.append(dlc_filepath) except Exception: self.fail(_("Unable to download DLC container")) - return package_links + return pack_links def handle_WEB_links(self): self.log_debug("Search for WEB links") - package_links = [] + pack_links = [] params = re.findall(self.WEB_FORWARD_REGEX, self.data) self.log_debug("Decrypting %d Web links" % len(params)) @@ -250,14 +249,14 @@ class RelinkUs(Crypter): res = self.load(url) link = re.search(self.WEB_LINK_REGEX, res).group(1) - package_links.append(link) + pack_links.append(link) except Exception, detail: self.log_debug("Error decrypting Web link %s, %s" % (index, detail)) self.wait(4) - return package_links + return pack_links def _get_cipher_params(self, cnl2_form): @@ -283,7 +282,7 @@ class RelinkUs(Crypter): #: Decrypt Key = key IV = key - obj = AES.new(Key, AES.MODE_CBC, IV) + obj = Crypto.Cipher.AES.new(Key, Crypto.Cipher.AES.MODE_CBC, IV) text = obj.decrypt(crypted.decode('base64')) #: Extract links @@ -293,6 +292,3 @@ class RelinkUs(Crypter): #: Log and return self.log_debug("Package has %d links" % len(links)) return links - - -getInfo = create_getInfo(RelinkUs) diff --git a/module/plugins/crypter/SafelinkingNet.py b/module/plugins/crypter/SafelinkingNet.py index 98af1522f..d1c23d14f 100644 --- a/module/plugins/crypter/SafelinkingNet.py +++ b/module/plugins/crypter/SafelinkingNet.py @@ -4,22 +4,21 @@ import re import BeautifulSoup -from module.plugins.internal.utils import json -from module.plugins.internal.Crypter import Crypter, create_getInfo +from module.plugins.internal.misc import json +from module.plugins.internal.Crypter import Crypter from module.plugins.captcha.SolveMedia import SolveMedia class SafelinkingNet(Crypter): __name__ = "SafelinkingNet" __type__ = "crypter" - __version__ = "0.19" + __version__ = "0.20" __status__ = "testing" __pattern__ = r'https?://(?:www\.)?safelinking\.net/([pd])/\w+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("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__ = """Safelinking.net decrypter plugin""" __license__ = "GPLv3" @@ -52,7 +51,7 @@ class SafelinkingNet(Crypter): m = re.search(self.SOLVEMEDIA_PATTERN, self.data) if m is not None: captchaKey = m.group(1) - captcha = SolveMedia(self) + captcha = SolveMedia(pyfile) captchaProvider = "Solvemedia" else: self.fail(_("Error parsing captcha")) @@ -83,6 +82,3 @@ class SafelinkingNet(Crypter): self.links.append("https://safelinking.net/d/" + link['full']) else: self.links.append(link['full']) - - -getInfo = create_getInfo(SafelinkingNet) diff --git a/module/plugins/crypter/SecuredIn.py b/module/plugins/crypter/SecuredIn.py index 62ec9ea7d..cb219c41c 100644 --- a/module/plugins/crypter/SecuredIn.py +++ b/module/plugins/crypter/SecuredIn.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo +from module.plugins.internal.DeadCrypter import DeadCrypter class SecuredIn(DeadCrypter): __name__ = "SecuredIn" __type__ = "crypter" - __version__ = "0.24" + __version__ = "0.25" __status__ = "stable" __pattern__ = r'http://(?:www\.)?secured\.in/download-[\d]+\-\w{8}\.html' @@ -15,6 +15,3 @@ class SecuredIn(DeadCrypter): __description__ = """Secured.in decrypter plugin""" __license__ = "GPLv3" __authors__ = [("mkaay", "mkaay@mkaay.de")] - - -getInfo = create_getInfo(SecuredIn) diff --git a/module/plugins/crypter/SexuriaCom.py b/module/plugins/crypter/SexuriaCom.py index 8ccf0c83a..edeecf80b 100644 --- a/module/plugins/crypter/SexuriaCom.py +++ b/module/plugins/crypter/SexuriaCom.py @@ -2,19 +2,19 @@ import re -from module.plugins.internal.Crypter import Crypter, create_getInfo +from module.plugins.internal.Crypter import Crypter class SexuriaCom(Crypter): __name__ = "SexuriaCom" __type__ = "crypter" - __version__ = "0.12" + __version__ = "0.13" __status__ = "testing" __pattern__ = r'http://(?:www\.)?sexuria\.com/(v1/)?(Pornos_Kostenlos_.+?_(\d+)\.html|dl_links_\d+_\d+\.html|id=\d+\&part=\d+\&link=\d+)' __config__ = [("activated" , "bool", "Activated" , True), ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package", True)] + ("folder_per_package", "Default;Yes;No", "Create folder for each package" , "Default")] __description__ = """Sexuria.com decrypter plugin""" __license__ = "GPLv3" @@ -36,10 +36,10 @@ class SexuriaCom(Crypter): self.package = pyfile.package() #: Decrypt and add links - package_name, self.urls, folder_name, package_pwd = self.decrypt_links(self.pyfile.url) - if package_pwd: - self.pyfile.package().password = package_pwd - self.packages = [(package_name, self.urls, folder_name)] + pack_name, self.urls, folder_name, pack_pwd = self.decrypt_links(self.pyfile.url) + if pack_pwd: + self.pyfile.package().password = pack_pwd + self.packages = [(pack_name, self.urls, folder_name)] def decrypt_links(self, url): @@ -107,6 +107,3 @@ class SexuriaCom(Crypter): #: All done, return to caller return name, linklist, folder, password - - -getInfo = create_getInfo(SexuriaCom) diff --git a/module/plugins/crypter/ShSt.py b/module/plugins/crypter/ShSt.py index be2fea9e1..fdb40bd76 100644 --- a/module/plugins/crypter/ShSt.py +++ b/module/plugins/crypter/ShSt.py @@ -4,13 +4,13 @@ import re import pycurl -from module.plugins.internal.Crypter import Crypter, create_getInfo +from module.plugins.internal.Crypter import Crypter class ShSt(Crypter): __name__ = "ShSt" __type__ = "crypter" - __version__ = "0.07" + __version__ = "0.08" __status__ = "testing" __pattern__ = r'http://sh\.st/\w+' @@ -31,6 +31,3 @@ class ShSt(Crypter): header = self.load(self.pyfile.url, just_header = True, decode = False) target_url = header.get('location') self.links.append(target_url) - - -getInfo = create_getInfo(ShSt) diff --git a/module/plugins/crypter/ShareLinksBiz.py b/module/plugins/crypter/ShareLinksBiz.py index e2ddfd926..2aa670a7e 100644 --- a/module/plugins/crypter/ShareLinksBiz.py +++ b/module/plugins/crypter/ShareLinksBiz.py @@ -3,9 +3,9 @@ import binascii import re -from Crypto.Cipher import AES +import Crypto.Cipher -from module.plugins.internal.Crypter import Crypter, create_getInfo +from module.plugins.internal.Crypter import Crypter class ShareLinksBiz(Crypter): @@ -15,10 +15,9 @@ class ShareLinksBiz(Crypter): __status__ = "testing" __pattern__ = r'http://(?:www\.)?(share-links|s2l)\.biz/(?P<ID>_?\w+)' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("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__ = """Share-Links.biz decrypter plugin""" __license__ = "GPLv3" @@ -53,17 +52,17 @@ class ShareLinksBiz(Crypter): self.handle_errors() #: Extract package links - package_links = [] - package_links.extend(self.handle_web_links()) - package_links.extend(self.handle_containers()) - package_links.extend(self.handle_CNL2()) - package_links = set(package_links) + pack_links = [] + pack_links.extend(self.handle_web_links()) + pack_links.extend(self.handle_containers()) + pack_links.extend(self.handle_CNL2()) + pack_links = set(pack_links) #: Get package info - package_name, package_folder = self.get_package_info() + pack_name, pack_folder = self.get_package_info() #: Pack - self.packages = [(package_name, package_links, package_folder)] + self.packages = [(pack_name, pack_links, pack_folder)] def init_file(self, pyfile): @@ -71,7 +70,7 @@ class ShareLinksBiz(Crypter): if 's2l.biz' in url: header = self.load(url, just_header=True) - + if not 'location' in header: self.fail(_("Unable to initialize download")) else: @@ -200,7 +199,7 @@ class ShareLinksBiz(Crypter): def handle_web_links(self): - package_links = [] + pack_links = [] self.log_debug("Handling Web links") #@TODO: Gather paginated web links @@ -226,16 +225,16 @@ class ShareLinksBiz(Crypter): self.log_debug("JsEngine returns value [%s] for redirection link" % dlLink) - package_links.append(dlLink) + pack_links.append(dlLink) except Exception, detail: self.log_debug("Error decrypting Web link [%s], %s" % (ID, detail)) - return package_links + return pack_links def handle_containers(self): - package_links = [] + pack_links = [] self.log_debug("Handling Container links") pattern = r'javascript:_get\(\'(.*?)\', 0, \'(rsdf|ccf|dlc)\'\)' @@ -243,23 +242,23 @@ class ShareLinksBiz(Crypter): self.log_debug("Decrypting %d Container links" % len(containersLinks)) for containerLink in containersLinks: link = "%s/get/%s/%s" % (self.base_url, containerLink[1], containerLink[0]) - package_links.append(link) - return package_links + pack_links.append(link) + return pack_links def handle_CNL2(self): - package_links = [] + pack_links = [] self.log_debug("Handling CNL2 links") if '/lib/cnl2/ClicknLoad.swf' in self.data: try: (crypted, jk) = self._get_cipher_params() - package_links.extend(self._get_links(crypted, jk)) + pack_links.extend(self._get_links(crypted, jk)) except Exception: self.fail(_("Unable to decrypt CNL2 links")) - return package_links + return pack_links def _get_cipher_params(self): @@ -290,7 +289,7 @@ class ShareLinksBiz(Crypter): #: Decrypt Key = key IV = key - obj = AES.new(Key, AES.MODE_CBC, IV) + obj = Crypto.Cipher.AES.new(Key, Crypto.Cipher.AES.MODE_CBC, IV) text = obj.decrypt(crypted.decode('base64')) #: Extract links @@ -300,6 +299,3 @@ class ShareLinksBiz(Crypter): #: Log and return self.log_debug("Block has %d links" % len(links)) return links - - -getInfo = create_getInfo(ShareLinksBiz) diff --git a/module/plugins/crypter/SharingmatrixComFolder.py b/module/plugins/crypter/SharingmatrixComFolder.py index 2fb24bca3..1b76e32fd 100644 --- a/module/plugins/crypter/SharingmatrixComFolder.py +++ b/module/plugins/crypter/SharingmatrixComFolder.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo +from module.plugins.internal.DeadCrypter import DeadCrypter class SharingmatrixComFolder(DeadCrypter): __name__ = "SharingmatrixComFolder" __type__ = "crypter" - __version__ = "0.05" + __version__ = "0.06" __status__ = "stable" __pattern__ = r'http://(?:www\.)?sharingmatrix\.com/folder/\w+' @@ -15,6 +15,3 @@ class SharingmatrixComFolder(DeadCrypter): __description__ = """Sharingmatrix.com folder decrypter plugin""" __license__ = "GPLv3" __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - - -getInfo = create_getInfo(SharingmatrixComFolder) diff --git a/module/plugins/crypter/SpeedLoadOrgFolder.py b/module/plugins/crypter/SpeedLoadOrgFolder.py index bc01d50dd..bda010205 100644 --- a/module/plugins/crypter/SpeedLoadOrgFolder.py +++ b/module/plugins/crypter/SpeedLoadOrgFolder.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo +from module.plugins.internal.DeadCrypter import DeadCrypter class SpeedLoadOrgFolder(DeadCrypter): __name__ = "SpeedLoadOrgFolder" __type__ = "crypter" - __version__ = "0.34" + __version__ = "0.35" __status__ = "stable" __pattern__ = r'http://(?:www\.)?speedload\.org/(\d+~f$|folder/\d+/)' @@ -15,6 +15,3 @@ class SpeedLoadOrgFolder(DeadCrypter): __description__ = """Speedload decrypter plugin""" __license__ = "GPLv3" __authors__ = [("stickell", "l.stickell@yahoo.it")] - - -getInfo = create_getInfo(SpeedLoadOrgFolder) diff --git a/module/plugins/crypter/StealthTo.py b/module/plugins/crypter/StealthTo.py index 7d52b34dc..2df6612c2 100644 --- a/module/plugins/crypter/StealthTo.py +++ b/module/plugins/crypter/StealthTo.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo +from module.plugins.internal.DeadCrypter import DeadCrypter class StealthTo(DeadCrypter): __name__ = "StealthTo" __type__ = "crypter" - __version__ = "0.23" + __version__ = "0.24" __status__ = "stable" __pattern__ = r'http://(?:www\.)?stealth\.to/folder/.+' @@ -15,6 +15,3 @@ class StealthTo(DeadCrypter): __description__ = """Stealth.to decrypter plugin""" __license__ = "GPLv3" __authors__ = [("spoob", "spoob@pyload.org")] - - -getInfo = create_getInfo(StealthTo) diff --git a/module/plugins/crypter/TNTVillageScambioeticoOrg.py b/module/plugins/crypter/TNTVillageScambioeticoOrg.py index 81e18e697..416b2091e 100644 --- a/module/plugins/crypter/TNTVillageScambioeticoOrg.py +++ b/module/plugins/crypter/TNTVillageScambioeticoOrg.py @@ -1,20 +1,19 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class TNTVillageScambioeticoOrg(SimpleCrypter): __name__ = "TNTVillageScambioeticoOrg" __type__ = "crypter" - __version__ = "0.05" + __version__ = "0.06" __status__ = "testing" __pattern__ = r'http://(?:www\.)?forum\.tntvillage\.scambioetico\.org/index\.php\?.*showtopic=\d+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """TNTVillage.scambioetico.org decrypter plugin""" __license__ = "GPLv3" @@ -30,6 +29,3 @@ class TNTVillageScambioeticoOrg(SimpleCrypter): links = super(TNTVillageScambioeticoOrg, self).getLinks() if links: return links - - -getInfo = create_getInfo(TNTVillageScambioeticoOrg) diff --git a/module/plugins/crypter/TinyurlCom.py b/module/plugins/crypter/TinyurlCom.py index e11fa5e8f..9cec99807 100644 --- a/module/plugins/crypter/TinyurlCom.py +++ b/module/plugins/crypter/TinyurlCom.py @@ -1,20 +1,19 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class TinyurlCom(SimpleCrypter): __name__ = "TinyurlCom" __type__ = "crypter" - __version__ = "0.05" + __version__ = "0.06" __status__ = "testing" __pattern__ = r'https?://(?:www\.)?(preview\.)?tinyurl\.com/[\w\-]+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Tinyurl.com decrypter plugin""" __license__ = "GPLv3" @@ -24,6 +23,3 @@ class TinyurlCom(SimpleCrypter): URL_REPLACEMENTS = [(r'preview\.', r'')] OFFLINE_PATTERN = r">Error: Unable to find site's URL to redirect to" - - -getInfo = create_getInfo(TinyurlCom) diff --git a/module/plugins/crypter/TnyCz.py b/module/plugins/crypter/TnyCz.py index cba2df0c9..c7680a272 100644 --- a/module/plugins/crypter/TnyCz.py +++ b/module/plugins/crypter/TnyCz.py @@ -2,21 +2,20 @@ import re -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class TnyCz(SimpleCrypter): __name__ = "TnyCz" __type__ = "crypter" - __version__ = "0.07" + __version__ = "0.08" __status__ = "testing" __pattern__ = r'http://(?:www\.)?tny\.cz/\w+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Tny.cz decrypter plugin""" __license__ = "GPLv3" @@ -29,6 +28,3 @@ class TnyCz(SimpleCrypter): def get_links(self): m = re.search(r'<a id=\'save_paste\' href="(.+save\.php\?hash=.+)">', self.data) return re.findall(".+", self.load(m.group(1))) if m else None - - -getInfo = create_getInfo(TnyCz) diff --git a/module/plugins/crypter/TrailerzoneInfo.py b/module/plugins/crypter/TrailerzoneInfo.py index 6c3485a14..66edd32df 100644 --- a/module/plugins/crypter/TrailerzoneInfo.py +++ b/module/plugins/crypter/TrailerzoneInfo.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo +from module.plugins.internal.DeadCrypter import DeadCrypter class TrailerzoneInfo(DeadCrypter): __name__ = "TrailerzoneInfo" __type__ = "crypter" - __version__ = "0.06" + __version__ = "0.07" __status__ = "stable" __pattern__ = r'http://(?:www\.)?trailerzone\.info/.+' @@ -15,6 +15,3 @@ class TrailerzoneInfo(DeadCrypter): __description__ = """TrailerZone.info decrypter plugin""" __license__ = "GPLv3" __authors__ = [("godofdream", "soilfiction@gmail.com")] - - -getInfo = create_getInfo(TrailerzoneInfo) diff --git a/module/plugins/crypter/TurbobitNetFolder.py b/module/plugins/crypter/TurbobitNetFolder.py index 20f664526..32320414b 100644 --- a/module/plugins/crypter/TurbobitNetFolder.py +++ b/module/plugins/crypter/TurbobitNetFolder.py @@ -2,22 +2,21 @@ import re -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo -from module.plugins.internal.utils import json +from module.plugins.internal.SimpleCrypter import SimpleCrypter +from module.plugins.internal.misc import json class TurbobitNetFolder(SimpleCrypter): __name__ = "TurbobitNetFolder" __type__ = "crypter" - __version__ = "0.09" + __version__ = "0.10" __status__ = "broken" __pattern__ = r'http://(?:www\.)?turbobit\.net/download/folder/(?P<ID>\w+)' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Turbobit.net folder decrypter plugin""" __license__ = "GPLv3" @@ -44,6 +43,3 @@ class TurbobitNetFolder(SimpleCrypter): def get_links(self): return ["http://turbobit.net/%s.html" % id for id in self._get_links(self.info['pattern']['ID'])] - - -getInfo = create_getInfo(TurbobitNetFolder) diff --git a/module/plugins/crypter/TusfilesNetFolder.py b/module/plugins/crypter/TusfilesNetFolder.py index 8a524306d..2138e0007 100644 --- a/module/plugins/crypter/TusfilesNetFolder.py +++ b/module/plugins/crypter/TusfilesNetFolder.py @@ -4,21 +4,20 @@ import math import re import urlparse -from module.plugins.internal.XFSCrypter import XFSCrypter, create_getInfo +from module.plugins.internal.XFSCrypter import XFSCrypter class TusfilesNetFolder(XFSCrypter): __name__ = "TusfilesNetFolder" __type__ = "crypter" - __version__ = "0.13" + __version__ = "0.14" __status__ = "testing" __pattern__ = r'https?://(?:www\.)?tusfiles\.net/go/(?P<ID>\w+)' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Tusfiles.net folder decrypter plugin""" __license__ = "GPLv3" @@ -47,6 +46,3 @@ class TusfilesNetFolder(XFSCrypter): for p in xrange(2, pages + 1): self.data = self.load_page(p) self.links.append(self.get_links()) - - -getInfo = create_getInfo(TusfilesNetFolder) diff --git a/module/plugins/crypter/UlozToFolder.py b/module/plugins/crypter/UlozToFolder.py index a57544db6..22fcac7d9 100644 --- a/module/plugins/crypter/UlozToFolder.py +++ b/module/plugins/crypter/UlozToFolder.py @@ -2,20 +2,19 @@ import re -from module.plugins.internal.Crypter import Crypter, create_getInfo +from module.plugins.internal.Crypter import Crypter class UlozToFolder(Crypter): __name__ = "UlozToFolder" __type__ = "crypter" - __version__ = "0.25" + __version__ = "0.26" __status__ = "testing" __pattern__ = r'http://(?:www\.)?(uloz\.to|ulozto\.(cz|sk|net)|bagruj\.cz|zachowajto\.pl)/(m|soubory)/.+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("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__ = """Uloz.to folder decrypter plugin""" __license__ = "GPLv3" @@ -48,6 +47,3 @@ class UlozToFolder(Crypter): if new_links: self.links = [map(lambda s: "http://ulozto.net/%s" % s, new_links)] - - -getInfo = create_getInfo(UlozToFolder) diff --git a/module/plugins/crypter/UploadableChFolder.py b/module/plugins/crypter/UploadableChFolder.py index 320dbc0d9..f108f0a4a 100644 --- a/module/plugins/crypter/UploadableChFolder.py +++ b/module/plugins/crypter/UploadableChFolder.py @@ -1,20 +1,19 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class UploadableChFolder(SimpleCrypter): __name__ = "UploadableChFolder" __type__ = "crypter" - __version__ = "0.07" + __version__ = "0.08" __status__ = "testing" __pattern__ = r'http://(?:www\.)?uploadable\.ch/list/\w+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """Uploadable.ch folder decrypter plugin""" __license__ = "GPLv3" @@ -26,6 +25,3 @@ class UploadableChFolder(SimpleCrypter): NAME_PATTERN = r'<div class="folder"><span> </span>(?P<N>.+?)</div>' OFFLINE_PATTERN = r'We are sorry... The URL you entered cannot be found on the server.' TEMP_OFFLINE_PATTERN = r'<div class="icon_err">' - - -getInfo = create_getInfo(UploadableChFolder) diff --git a/module/plugins/crypter/UploadedToFolder.py b/module/plugins/crypter/UploadedToFolder.py index 8c55beda9..5b1f7a688 100644 --- a/module/plugins/crypter/UploadedToFolder.py +++ b/module/plugins/crypter/UploadedToFolder.py @@ -2,21 +2,20 @@ import re -from module.plugins.internal.SimpleCrypter import SimpleCrypter, create_getInfo +from module.plugins.internal.SimpleCrypter import SimpleCrypter class UploadedToFolder(SimpleCrypter): __name__ = "UploadedToFolder" __type__ = "crypter" - __version__ = "0.47" + __version__ = "0.48" __status__ = "testing" __pattern__ = r'https?://(?:www\.)?(uploaded|ul)\.(to|net)/(f|folder|list)/\w+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """UploadedTo decrypter plugin""" __license__ = "GPLv3" @@ -28,6 +27,3 @@ class UploadedToFolder(SimpleCrypter): TEMP_OFFLINE_PATTERN = r'<title>uploaded\.net - Maintenance' LINK_PATTERN = r'<h2><a href="(.+?)"' - - -getInfo = create_getInfo(UploadedToFolder) diff --git a/module/plugins/crypter/WiiReloadedOrg.py b/module/plugins/crypter/WiiReloadedOrg.py index ebacdd953..4c3c5f82d 100644 --- a/module/plugins/crypter/WiiReloadedOrg.py +++ b/module/plugins/crypter/WiiReloadedOrg.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo +from module.plugins.internal.DeadCrypter import DeadCrypter class WiiReloadedOrg(DeadCrypter): __name__ = "WiiReloadedOrg" __type__ = "crypter" - __version__ = "0.14" + __version__ = "0.15" __status__ = "stable" __pattern__ = r'http://(?:www\.)?wii-reloaded\.org/protect/get\.php\?i=.+' @@ -15,6 +15,3 @@ class WiiReloadedOrg(DeadCrypter): __description__ = """Wii-Reloaded.org decrypter plugin""" __license__ = "GPLv3" __authors__ = [("hzpz", None)] - - -getInfo = create_getInfo(WiiReloadedOrg) diff --git a/module/plugins/crypter/WuploadComFolder.py b/module/plugins/crypter/WuploadComFolder.py index 92cf7bae0..738ba0fe3 100644 --- a/module/plugins/crypter/WuploadComFolder.py +++ b/module/plugins/crypter/WuploadComFolder.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.DeadCrypter import DeadCrypter, create_getInfo +from module.plugins.internal.DeadCrypter import DeadCrypter class WuploadComFolder(DeadCrypter): __name__ = "WuploadComFolder" __type__ = "crypter" - __version__ = "0.05" + __version__ = "0.06" __status__ = "stable" __pattern__ = r'http://(?:www\.)?wupload\.com/folder/\w+' @@ -15,6 +15,3 @@ class WuploadComFolder(DeadCrypter): __description__ = """Wupload.com folder decrypter plugin""" __license__ = "GPLv3" __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - - -getInfo = create_getInfo(WuploadComFolder) diff --git a/module/plugins/crypter/XFileSharingFolder.py b/module/plugins/crypter/XFileSharingFolder.py index 927a0f6bc..26ba286c0 100644 --- a/module/plugins/crypter/XFileSharingFolder.py +++ b/module/plugins/crypter/XFileSharingFolder.py @@ -2,21 +2,20 @@ import re -from module.plugins.internal.XFSCrypter import XFSCrypter, create_getInfo +from module.plugins.internal.XFSCrypter import XFSCrypter class XFileSharingFolder(XFSCrypter): __name__ = "XFileSharingFolder" __type__ = "crypter" - __version__ = "0.23" + __version__ = "0.24" __status__ = "testing" __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), - ("subfolder_per_package", "bool", "Create a subfolder for each package" , True), - ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] + __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"), + ("max_wait" , "int" , "Reconnect if waiting time is greater than minutes", 10 )] __description__ = """XFileSharing dummy folder decrypter plugin for hook""" __license__ = "GPLv3" @@ -39,7 +38,7 @@ class XFileSharingFolder(XFSCrypter): def setup_base(self): if self.account: self.req = self.pyload.requestFactory.getRequest(self.PLUGIN_NAME, self.account.user) - self.premium = self.account.info['data']['premium'] #@NOTE: Avoid one unnecessary get_info call by `self.account.premium` here + self.premium = self.account.info['data']['premium'] #@NOTE: Don't call get_info here to reduce overhead else: self.req = self.pyload.requestFactory.getRequest(self.classname) self.premium = False @@ -53,6 +52,3 @@ class XFileSharingFolder(XFSCrypter): self.__class__.__name__ = str(self.PLUGIN_NAME) super(XFileSharingFolder, self).load_account() self.__class__.__name__ = class_name - - -getInfo = create_getInfo(XFileSharingFolder) diff --git a/module/plugins/crypter/XupPl.py b/module/plugins/crypter/XupPl.py index 39d168379..c47be0645 100644 --- a/module/plugins/crypter/XupPl.py +++ b/module/plugins/crypter/XupPl.py @@ -1,19 +1,18 @@ # -*- coding: utf-8 -*- -from module.plugins.internal.Crypter import Crypter, create_getInfo +from module.plugins.internal.Crypter import Crypter class XupPl(Crypter): __name__ = "XupPl" __type__ = "crypter" - __version__ = "0.14" + __version__ = "0.15" __status__ = "testing" __pattern__ = r'https?://(?:[^/]*\.)?xup\.pl/.+' - __config__ = [("activated" , "bool", "Activated" , True), - ("use_premium" , "bool", "Use premium account if available" , True), - ("use_subfolder" , "bool", "Save package to subfolder" , True), - ("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__ = """Xup.pl decrypter plugin""" __license__ = "GPLv3" @@ -26,6 +25,3 @@ class XupPl(Crypter): self.links = [header.get('location')] else: self.fail(_("Unable to find link")) - - -getInfo = create_getInfo(XupPl) diff --git a/module/plugins/crypter/YoutubeComFolder.py b/module/plugins/crypter/YoutubeComFolder.py index b7b51aeef..dc605ffce 100644 --- a/module/plugins/crypter/YoutubeComFolder.py +++ b/module/plugins/crypter/YoutubeComFolder.py @@ -3,24 +3,23 @@ import re import urlparse -from module.plugins.internal.Crypter import Crypter, create_getInfo -from module.plugins.internal.utils import fs_join, json +from module.plugins.internal.Crypter import Crypter +from module.plugins.internal.misc import fsjoin, json class YoutubeComFolder(Crypter): __name__ = "YoutubeComFolder" __type__ = "crypter" - __version__ = "1.07" + __version__ = "1.08" __status__ = "testing" __pattern__ = r'https?://(?:www\.|m\.)?youtube\.com/(?P<TYPE>user|playlist|view_play_list)(/|.*?[?&](?:list|p)=)(?P<ID>[\w\-]+)' - __config__ = [("activated" , "bool", "Activated" , True ), - ("use_premium" , "bool", "Use premium account if available" , True ), - ("use_subfolder" , "bool", "Save package to subfolder" , True ), - ("subfolder_per_package", "bool", "Create a subfolder for each package", True ), - ("likes" , "bool", "Grab user (channel) liked videos" , False), - ("favorites" , "bool", "Grab user (channel) favorite videos", False), - ("uploads" , "bool", "Grab channel unplaylisted videos" , 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"), + ("likes" , "bool" , "Grab user (channel) liked videos" , False ), + ("favorites" , "bool" , "Grab user (channel) favorite videos", False ), + ("uploads" , "bool" , "Grab channel unplaylisted videos" , True )] __description__ = """Youtube.com channel & playlist decrypter plugin""" __license__ = "GPLv3" @@ -117,7 +116,7 @@ class YoutubeComFolder(Crypter): relatedplaylist['uploads']['checkDups'] = True #: checkDups flag for p_name, p_data in relatedplaylist.items(): - if self.get_config(p_name): + if self.config.get(p_name): p_data['title'] += " of " + user playlists.append(p_data) else: @@ -134,7 +133,7 @@ class YoutubeComFolder(Crypter): for p in playlists: p_name = p['title'] p_videos = self.get_videos_id(p['id']) - p_folder = fs_join(self.pyload.config.get("general", "download_folder"), p['channelTitle'], p_name) + p_folder = fsjoin(self.pyload.config.get("general", "download_folder"), p['channelTitle'], p_name) self.log_debug("%s video\s found on playlist \"%s\"" % (len(p_videos), p_name)) if not p_videos: @@ -148,6 +147,3 @@ class YoutubeComFolder(Crypter): self.packages.append((p_name, p_urls, p_folder)) #: Folder is NOT recognized by pyload 0.4.9! addedvideos.extend(p_videos) - - -getInfo = create_getInfo(YoutubeComFolder) |