diff options
author | Walter Purcaro <vuolter@gmail.com> | 2014-11-15 07:26:01 +0100 |
---|---|---|
committer | Walter Purcaro <vuolter@gmail.com> | 2014-11-15 07:26:01 +0100 |
commit | eb61d1bb0a30fd32f99b93f847346c610fbc91d2 (patch) | |
tree | f889dd1b19c0496f3f88c478445165abd98f9c7a /module/plugins/crypter | |
parent | [HTTPRequest] Raise Fail if write response fails (diff) | |
download | pyload-eb61d1bb0a30fd32f99b93f847346c610fbc91d2.tar.xz |
Update plugins after merging
Diffstat (limited to 'module/plugins/crypter')
-rw-r--r-- | module/plugins/crypter/FilesonicComFolder.py | 15 | ||||
-rw-r--r-- | module/plugins/crypter/HotfileComFolder.py | 16 | ||||
-rw-r--r-- | module/plugins/crypter/JunocloudMeFolder.py | 20 | ||||
-rw-r--r-- | module/plugins/crypter/LinkCryptWs.py | 341 | ||||
-rw-r--r-- | module/plugins/crypter/MegaRapidCzFolder.py | 20 | ||||
-rw-r--r-- | module/plugins/crypter/MegauploadComFolder.py | 15 | ||||
-rw-r--r-- | module/plugins/crypter/RapidfileshareNetFolder.py | 20 | ||||
-rw-r--r-- | module/plugins/crypter/SexuriaCom.py | 94 | ||||
-rw-r--r-- | module/plugins/crypter/SharingmatrixComFolder.py | 15 | ||||
-rw-r--r-- | module/plugins/crypter/WuploadComFolder.py | 15 | ||||
-rw-r--r-- | module/plugins/crypter/XFileSharingProFolder.py | 47 |
11 files changed, 0 insertions, 618 deletions
diff --git a/module/plugins/crypter/FilesonicComFolder.py b/module/plugins/crypter/FilesonicComFolder.py deleted file mode 100644 index 2d0540d26..000000000 --- a/module/plugins/crypter/FilesonicComFolder.py +++ /dev/null @@ -1,15 +0,0 @@ -# -*- coding: utf-8 -*- - -from module.plugins.internal.DeadCrypter import DeadCrypter - - -class FilesonicComFolder(DeadCrypter): - __name__ = "FilesonicComFolder" - __type__ = "crypter" - __version__ = "0.12" - - __pattern__ = r'http://(?:www\.)?filesonic\.com/folder/\w+' - - __description__ = """Filesonic.com folder decrypter plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] diff --git a/module/plugins/crypter/HotfileComFolder.py b/module/plugins/crypter/HotfileComFolder.py deleted file mode 100644 index 3fc8f6f63..000000000 --- a/module/plugins/crypter/HotfileComFolder.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- - -from module.plugins.internal.DeadCrypter import DeadCrypter - - -class HotfileComFolder(DeadCrypter): - __name__ = "HotfileComFolder" - __type__ = "crypter" - __version__ = "0.3" - - __pattern__ = r'https?://(?:www\.)?hotfile\.com/list/\w+/\w+' - __config__ = [] - - __description__ = """Hotfile.com folder decrypter plugin""" - __license__ = "GPLv3" - __authors__ = [("RaNaN", "RaNaN@pyload.org")] diff --git a/module/plugins/crypter/JunocloudMeFolder.py b/module/plugins/crypter/JunocloudMeFolder.py deleted file mode 100644 index 509f1f7ec..000000000 --- a/module/plugins/crypter/JunocloudMeFolder.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- - -from module.plugins.internal.XFSCrypter import XFSCrypter - - -class JunocloudMeFolder(XFSCrypter): - __name__ = "JunocloudMeFolder" - __type__ = "crypter" - __version__ = "0.03" - - __pattern__ = r'http://(?:www\.)?junocloud\.me/folders/(?P<ID>\d+/\w+)' - __config__ = [("use_subfolder", "bool", "Save package to subfolder", True), - ("subfolder_per_package", "bool", "Create a subfolder for each package", True)] - - __description__ = """Junocloud.me folder decrypter plugin""" - __license__ = "GPLv3" - __authors__ = [("guidobelix", "guidobelix@hotmail.it")] - - - HOSTER_DOMAIN = "junocloud.me" diff --git a/module/plugins/crypter/LinkCryptWs.py b/module/plugins/crypter/LinkCryptWs.py deleted file mode 100644 index b90e18490..000000000 --- a/module/plugins/crypter/LinkCryptWs.py +++ /dev/null @@ -1,341 +0,0 @@ -# -*- coding: utf-8 -*- - -import base64 -import binascii -import re - -import pycurl - -from Crypto.Cipher import AES - -from module.plugins.Crypter import Crypter -from module.utils import html_unescape - - -class LinkCryptWs(Crypter): - __name__ = "LinkCryptWs" - __type__ = "crypter" - __version__ = "0.05" - - __pattern__ = r'http://(?:www\.)?linkcrypt\.ws/(dir|container)/(?P<ID>\w+)' - - __description__ = """LinkCrypt.ws decrypter plugin""" - __license__ = "GPLv3" - __authors__ = [("kagenoshin", "kagenoshin[AT]gmx[DOT]ch"), - ("glukgluk", None)] - - - JK_KEY = "jk" - CRYPTED_KEY = "crypted" - - - def setup(self): - self.html = None - self.fileid = None - self.captcha = False - self.package = None - - self.preferred_sources = ['cnl', 'web', 'dlc', 'rsdf', 'ccf', ] #['cnl', 'rsdf', 'ccf', 'dlc', 'web'] - - - def prepare(self): - # Init - self.package = pyfile.package() - self.fileid = re.match(self.__pattern__, pyfile.url).group('ID') - - self.req.cj.setCookie(".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 - self.html = self.load(self.pyfile.url) - - - def decrypt(self, pyfile): - #check if we have js - if not self.js: - self.fail(_("Missing JS Engine")) - - package_found = None - - self.prepare() - - if not self.isOnline(): - self.offline() - - if self.isKeyCaptchaProtected(): - self.retry(4, 30, _("Can't handle Key-Captcha")) - - if self.isCaptchaProtected(): - self.captcha = True - self.unlockCaptchaProtection() - self.handleCaptchaErrors() - - # Check for protection - if self.isPasswordProtected(): - self.unlockPasswordProtection() - self.handleErrors() - - # get unrar password - self.getunrarpw() - - # Get package name and folder - package_name, folder_name = self.getPackageInfo() - - #get the container definitions from script section - self.get_container_html() - - # Extract package links - package_links = [] - - for type_ in self.preferred_sources: - links = self.handleLinkSource(type_) - if links: - if isinstance(links, list): - package_links.extend(links) - else: - package_found = True - break - - # Pack - if package_links: - self.packages = [(package_name, package_links, folder_name)] - - elif package_found: - self.core.api.deletePackages([self.package.id]) - - - def isOnline(self): - if "<title>Linkcrypt.ws // Error 404</title>" in self.html: - self.logDebug("folder doesen't exist anymore") - return False - else: - return True - - - def isPasswordProtected(self): - if "Authorizing" in self.html: - self.logDebug("Links are password protected") - return True - else: - return False - - - def isCaptchaProtected(self): - if 'id="captcha">' in self.html: - self.logDebug("Links are captcha protected") - return True - else: - return False - - - def isKeyCaptchaProtected(self): - if re.search(r'Key[ -]', self.html, re.I): - return True - else: - return False - - - def unlockPasswordProtection(self): - password = self.getPassword() - - if password: - self.logDebug("Submitting password [%s] for protected links" % password) - self.html = self.load(self.pyfile.url, post={"password": password, 'x': "0", 'y': "0"}) - else: - self.fail(_("Folder is password protected")) - - - def unlockCaptchaProtection(self): - captcha_url = re.search(r'<form.*?id\s*?=\s*?"captcha"[^>]*?>.*?<\s*?input.*?src="([^"]*?)"', self.html, re.I | re.S).group(1) - captcha_code = self.decryptCaptcha(captcha_url, forceUser=True, imgtype="gif", result_type='positional') - - self.html = self.load(self.pyfile.url, post={"x": captcha_code[0], "y": captcha_code[1]}) - - - def getPackageInfo(self): - name = self.pyfile.package().name - folder = self.pyfile.package().folder - - self.logDebug("Defaulting to pyfile name [%s] and folder [%s] for package" % (name, folder)) - - return name, folder - - - def getunrarpw(self): - sitein = self.html - indexi = sitein.find("|source|") + 8 - indexe = sitein.find("|",indexi) - - unrarpw = sitein[indexi:indexe] - - if not (unrarpw == "Password" or "Dateipasswort") : - self.logDebug("File password set to: [%s]"% unrarpw) - self.pyfile.package().password = unrarpw - - - def handleErrors(self): - if self.isPasswordProtected(): - self.fail(_("Incorrect password")) - - - def handleCaptchaErrors(self): - if self.captcha: - if "Your choice was wrong!" in self.html: - self.invalidCaptcha() - self.retry() - else: - self.correctCaptcha() - - - def handleLinkSource(self, type_): - if type_ is 'cnl': - return self.handleCNL2() - - elif type_ is 'web': - return self.handleWebLinks() - - elif type_ in ('rsdf', 'ccf', 'dlc'): - return self.handleContainer(type_) - - else: - self.error(_("Unknown source type: %s") % type_) - - - def handleWebLinks(self): - self.logDebug("Search for Web links ") - - package_links = [] - pattern = r'<form action="http://linkcrypt.ws/out.html"[^>]*?>.*?<input[^>]*?value="([^"]*?)"[^>]*?name="file"' - ids = re.findall(pattern, self.html, re.I | re.S) - - self.logDebug("Decrypting %d Web links" % len(ids)) - - for idx, weblink_id in enumerate(ids): - try: - self.logDebug("Decrypting Web link %d, %s" % (idx + 1, weblink_id)) - - res = self.load("http://linkcrypt.ws/out.html", post = {'file':weblink_id}) - - indexs = res.find("window.location =") + 19 - indexe = res.find('"', indexs) - - link2 = res[indexs:indexe] - - self.logDebug(link2) - - link2 = html_unescape(link2) - package_links.append(link2) - - except Exception, detail: - self.logDebug("Error decrypting Web link %s, %s" % (weblink_id, detail)) - - return package_links - - - def get_container_html(self): - self.container_html = [] - - script = re.search(r'<div.*?id="ad_cont".*?<script.*?javascrip[^>]*?>(.*?)</script', self.html, re.I | re.S) - - if script: - container_html_text = script.group(1) - container_html_text.strip() - self.container_html = container_html_text.splitlines() - - - def handle_javascript(self, line): - return self.js.eval(line.replace('{}))',"{}).replace('document.open();document.write','').replace(';document.close();',''))")) - - - def handleContainer(self, type_): - package_links = [] - type_ = type_.lower() - - self.logDebug('Search for %s Container links' % type_.upper()) - - if not type_.isalnum(): # check to prevent broken re-pattern (cnl2,rsdf,ccf,dlc,web are all alpha-numeric) - self.error(_("unknown container type: %s") % type_) - - for line in self.container_html: - if(type_ in line): - jseval = self.handle_javascript(line) - clink = re.search(r'href=["\']([^"\']*?)["\']',jseval,re.I) - - if not clink: - continue - - self.logDebug("clink avaible") - - package_name, folder_name = self.getPackageInfo() - self.logDebug("Added package with name %s.%s and container link %s" %( package_name, type_, clink.group(1))) - self.core.api.uploadContainer( "%s.%s" %(package_name, type_), self.load(clink.group(1))) - return "Found it" - - return package_links - - - def handleCNL2(self): - self.logDebug("Search for CNL links") - - package_links = [] - cnl_line = None - - for line in self.container_html: - if("cnl" in line): - cnl_line = line - break - - if cnl_line: - self.logDebug("cnl_line gefunden") - - try: - cnl_section = self.handle_javascript(cnl_line) - (vcrypted, vjk) = self._getCipherParams(cnl_section) - for (crypted, jk) in zip(vcrypted, vjk): - package_links.extend(self._getLinks(crypted, jk)) - except: - self.logError(_("Unable to decrypt CNL links (JS Error) try to get over links")) - return self.handleWebLinks() - - return package_links - - - def _getCipherParams(self, cnl_section): - # Get jk - jk_re = r'<INPUT.*?NAME="%s".*?VALUE="(.*?)"' % LinkCryptWs.JK_KEY - vjk = re.findall(jk_re, cnl_section) - - # Get crypted - crypted_re = r'<INPUT.*?NAME="%s".*?VALUE="(.*?)"' % LinkCryptWs.CRYPTED_KEY - vcrypted = re.findall(crypted_re, cnl_section) - - # Log and return - self.logDebug("Detected %d crypted blocks" % len(vcrypted)) - return vcrypted, vjk - - - def _getLinks(self, crypted, jk): - # Get key - jreturn = self.js.eval("%s f()" % jk) - key = binascii.unhexlify(jreturn) - - self.logDebug("JsEngine returns value [%s]" % jreturn) - - # Decode crypted - crypted = base64.standard_b64decode(crypted) - - # Decrypt - Key = key - IV = key - obj = AES.new(Key, AES.MODE_CBC, IV) - text = obj.decrypt(crypted) - - # Extract links - text = text.replace("\x00", "").replace("\r", "") - links = text.split("\n") - links = filter(lambda x: x != "", links) - - # Log and return - self.logDebug("Package has %d links" % len(links)) - - return links diff --git a/module/plugins/crypter/MegaRapidCzFolder.py b/module/plugins/crypter/MegaRapidCzFolder.py deleted file mode 100644 index d9fb828a8..000000000 --- a/module/plugins/crypter/MegaRapidCzFolder.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- - -from module.plugins.internal.SimpleCrypter import SimpleCrypter - - -class MegaRapidCzFolder(SimpleCrypter): - __name__ = "MegaRapidCzFolder" - __type__ = "crypter" - __version__ = "0.02" - - __pattern__ = r'http://(?:www\.)?(share|mega)rapid\.cz/slozka/\d+/\w+' - __config__ = [("use_subfolder", "bool", "Save package to subfolder", True), - ("subfolder_per_package", "bool", "Create a subfolder for each package", True)] - - __description__ = """Share-Rapid.com folder decrypter plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] - - - LINK_PATTERN = r'<td class="soubor"[^>]*><a href="([^"]+)">' diff --git a/module/plugins/crypter/MegauploadComFolder.py b/module/plugins/crypter/MegauploadComFolder.py deleted file mode 100644 index 1d487ed61..000000000 --- a/module/plugins/crypter/MegauploadComFolder.py +++ /dev/null @@ -1,15 +0,0 @@ -# -*- coding: utf-8 -*- - -from module.plugins.internal.DeadCrypter import DeadCrypter - - -class MegauploadComFolder(DeadCrypter): - __name__ = "MegauploadComFolder" - __type__ = "crypter" - __version__ = "0.02" - - __pattern__ = r'http://(?:www\.)?megaupload\.com/(\?f|xml/folderfiles\.php\?.*&?folderid)=\w+' - - __description__ = """Megaupload.com folder decrypter plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] diff --git a/module/plugins/crypter/RapidfileshareNetFolder.py b/module/plugins/crypter/RapidfileshareNetFolder.py deleted file mode 100644 index 5531d5a90..000000000 --- a/module/plugins/crypter/RapidfileshareNetFolder.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- - -from module.plugins.internal.XFSCrypter import XFSCrypter - - -class RapidfileshareNetFolder(XFSCrypter): - __name__ = "RapidfileshareNetFolder" - __type__ = "crypter" - __version__ = "0.03" - - __pattern__ = r'http://(?:www\.)?rapidfileshare\.net/users/\w+/\d+/\w+' - __config__ = [("use_subfolder", "bool", "Save package to subfolder", True), - ("subfolder_per_package", "bool", "Create a subfolder for each package", True)] - - __description__ = """Rapidfileshare.net folder decrypter plugin""" - __license__ = "GPLv3" - __authors__ = [("guidobelix", "guidobelix@hotmail.it")] - - - HOSTER_DOMAIN = "rapidfileshare.net" diff --git a/module/plugins/crypter/SexuriaCom.py b/module/plugins/crypter/SexuriaCom.py deleted file mode 100644 index 3c952fd6b..000000000 --- a/module/plugins/crypter/SexuriaCom.py +++ /dev/null @@ -1,94 +0,0 @@ -# -*- coding: utf-8 -*- - -import re - -from module.plugins.Crypter import Crypter - - -class SexuriaCom(Crypter): - __name__ = "SexuriaCom" - __type__ = "crypter" - __version__ = "0.01" - - __pattern__ = r'http://(?:www\.)?sexuria\.com/(v1/)?(Pornos_Kostenlos_.+?_(\d+)\.html|dl_links_\d+_\d+\.html|id=\d+\&part=\d+\&link=\d+)' - __config__ = [("use_subfolder", "bool", "Save package to subfolder", True), - ("subfolder_per_package", "bool", "Create a subfolder for each package", True)] - - __description__ = """Sexuria.com decrypter plugin""" - __license__ = "GPLv3" - __authors__ = [("NETHead", "NETHead.AT.gmx.DOT.net")] - - - PATTERN_SUPPORTED_MAIN = re.compile(r'http://(www\.)?sexuria\.com/(v1/)?Pornos_Kostenlos_.+?_(\d+)\.html', flags=re.I) - PATTERN_SUPPORTED_CRYPT = re.compile(r'http://(www\.)?sexuria\.com/(v1/)?dl_links_\d+_(?P<ID>\d+)\.html', flags=re.I) - PATTERN_SUPPORTED_REDIRECT = re.compile(r'http://(www\.)?sexuria\.com/out\.php\?id=(?P<ID>\d+)\&part=\d+\&link=\d+', flags=re.I) - PATTERN_TITLE = re.compile(r'<title> - (?P<TITLE>.*) Sexuria - Kostenlose Pornos - Rapidshare XXX Porn</title>', flags=re.I) - PATTERN_PASSWORD = re.compile(r'<strong>Passwort: </strong></div></td>.*?bgcolor="#EFEFEF">(?P<PWD>.*?)</td>', flags=re.I | re.S) - PATTERN_DL_LINK_PAGE = re.compile(r'"(dl_links_\d+_\d+\.html)"', flags=re.I) - PATTERN_REDIRECT_LINKS = re.compile(r'value="(http://sexuria\.com/out\.php\?id=\d+\&part=\d+\&link=\d+)" readonly', flags=re.I) - - - def decrypt(self, pyfile): - # Init - self.pyfile = pyfile - self.package = pyfile.package() - - # Get package links - package_name, self.links, folder_name, package_pwd = self.decryptLinks(self.pyfile.url) - self.packages = [(package_name, self.links, folder_name)] - - - def decryptLinks(self, url): - linklist = [] - name = self.package.name - folder = self.package.folder - password = None - - if re.match(self.PATTERN_SUPPORTED_MAIN, url): - # Processing main page - html = self.load(url) - links = re.findall(self.PATTERN_DL_LINK_PAGE, html) - for link in links: - linklist.append("http://sexuria.com/v1/" + link) - - elif re.match(self.PATTERN_SUPPORTED_REDIRECT, url): - # Processing direct redirect link (out.php), redirecting to main page - id = re.search(self.PATTERN_SUPPORTED_REDIRECT, url).group('ID') - if id: - linklist.append("http://sexuria.com/v1/Pornos_Kostenlos_liebe_%s.html" % id) - - elif re.match(self.PATTERN_SUPPORTED_CRYPT, url): - # Extract info from main file - id = re.search(self.PATTERN_SUPPORTED_CRYPT, url).group('ID') - html = self.load("http://sexuria.com/v1/Pornos_Kostenlos_info_%s.html" % id, decode=True) - - title = re.search(self.PATTERN_TITLE, html).group('TITLE').strip() - if title: - name = folder = title - self.logDebug("Package info found, name [%s] and folder [%s]" % (name, folder)) - - pwd = re.search(self.PATTERN_PASSWORD, html).group('PWD') - if pwd: - password = pwd.strip() - self.logDebug("Password info [%s] found" % password) - - # Process link (dl_link) - html = self.load(url) - links = re.findall(self.PATTERN_REDIRECT_LINKS, html) - if len(links) == 0: - self.LogError("Broken for link %s" % link) - else: - for link in links: - link = link.replace("http://sexuria.com/", "http://www.sexuria.com/") - finallink = self.load(link, just_header=True)['location'] - if not finallink or "sexuria.com/" in finallink: - self.LogError("Broken for link %s" % link) - else: - linklist.append(finallink) - - # Debug log - self.logDebug("%d supported links" % len(linklist)) - for i, link in enumerate(linklist): - self.logDebug("Supported link %d, %s" % (i + 1, link)) - - return name, linklist, folder, password diff --git a/module/plugins/crypter/SharingmatrixComFolder.py b/module/plugins/crypter/SharingmatrixComFolder.py deleted file mode 100644 index ddc3bdb37..000000000 --- a/module/plugins/crypter/SharingmatrixComFolder.py +++ /dev/null @@ -1,15 +0,0 @@ -# -*- coding: utf-8 -*- - -from module.plugins.internal.DeadCrypter import DeadCrypter - - -class SharingmatrixComFolder(DeadCrypter): - __name__ = "SharingmatrixComFolder" - __type__ = "crypter" - __version__ = "0.01" - - __pattern__ = r'http://(?:www\.)?sharingmatrix\.com/folder/\w+' - - __description__ = """Sharingmatrix.com folder decrypter plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] diff --git a/module/plugins/crypter/WuploadComFolder.py b/module/plugins/crypter/WuploadComFolder.py deleted file mode 100644 index b77bc3e67..000000000 --- a/module/plugins/crypter/WuploadComFolder.py +++ /dev/null @@ -1,15 +0,0 @@ -# -*- coding: utf-8 -*- - -from module.plugins.internal.DeadCrypter import DeadCrypter - - -class WuploadComFolder(DeadCrypter): - __name__ = "WuploadComFolder" - __type__ = "crypter" - __version__ = "0.01" - - __pattern__ = r'http://(?:www\.)?wupload\.com/folder/\w+' - - __description__ = """Wupload.com folder decrypter plugin""" - __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] diff --git a/module/plugins/crypter/XFileSharingProFolder.py b/module/plugins/crypter/XFileSharingProFolder.py deleted file mode 100644 index dffd8909c..000000000 --- a/module/plugins/crypter/XFileSharingProFolder.py +++ /dev/null @@ -1,47 +0,0 @@ -# -*- coding: utf-8 -*- - -import re - -from module.plugins.internal.XFSCrypter import XFSCrypter - - -class XFileSharingProFolder(XFSCrypter): - __name__ = "XFileSharingProFolder" - __type__ = "crypter" - __version__ = "0.03" - - __pattern__ = r'^unmatchable$' - __config__ = [("use_subfolder", "bool", "Save package to subfolder", True), - ("subfolder_per_package", "bool", "Create a subfolder for each package", True)] - - __description__ = """XFileSharingPro dummy folder decrypter plugin for hook""" - __license__ = "GPLv3" - __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] - - - def _log(self, type, args): - msg = " | ".join([str(a).strip() for a in args if a]) - logger = getattr(self.log, type) - logger("%s: %s: %s" % (self.__name__, self.HOSTER_NAME, msg or _("%s MARK" % type.upper()))) - - - def init(self): - super(XFileSharingProFolder, self).init() - - self.__pattern__ = self.core.pluginManager.crypterPlugins[self.__name__]['pattern'] - - self.HOSTER_DOMAIN = re.match(self.__pattern__, self.pyfile.url).group(1).lower() - self.HOSTER_NAME = "".join([str.capitalize() for str in self.HOSTER_DOMAIN.split('.')]) - - account = self.core.accountManager.getAccountPlugin(self.HOSTER_NAME) - - if account and account.canUse(): - self.account = account - elif self.account: - self.account.HOSTER_DOMAIN = self.HOSTER_DOMAIN - else: - return - - self.user, data = self.account.selectAccount() - self.req = self.account.getAccountRequest(self.user) - self.premium = self.account.isPremium(self.user) |