diff options
Diffstat (limited to 'module/plugins/internal')
-rw-r--r-- | module/plugins/internal/Base.py | 12 | ||||
-rw-r--r-- | module/plugins/internal/CaptchaService.py | 6 | ||||
-rw-r--r-- | module/plugins/internal/Container.py | 2 | ||||
-rw-r--r-- | module/plugins/internal/SimpleCrypter.py | 24 | ||||
-rw-r--r-- | module/plugins/internal/SimpleHoster.py | 26 | ||||
-rw-r--r-- | module/plugins/internal/XFSAccount.py | 26 | ||||
-rw-r--r-- | module/plugins/internal/XFSHoster.py | 24 |
7 files changed, 58 insertions, 62 deletions
diff --git a/module/plugins/internal/Base.py b/module/plugins/internal/Base.py index 48b4ff237..84986bd09 100644 --- a/module/plugins/internal/Base.py +++ b/module/plugins/internal/Base.py @@ -101,7 +101,7 @@ class Base(Plugin): self.captcha = Captcha(self) #: Some plugins store html code here - self.html = None + self.data = "" #: Dict of the amount of retries already made self.retries = {} @@ -137,9 +137,9 @@ class Base(Plugin): def _setup(self): #@TODO: Remove in 0.4.10 - self.html = "" - self.pyfile.error = "" - self.last_html = None + self.data = "" + self.pyfile.error = "" + self.last_html = None if self.get_config('use_premium', True): self.load_account() #@TODO: Move to PluginThread in 0.4.10 @@ -221,7 +221,7 @@ class Base(Plugin): self.log_info(_("Grabbing link info...")) old_info = dict(self.info) - new_info = self.get_info(self.pyfile.url, self.html) + new_info = self.get_info(self.pyfile.url, self.data) self.info.update(new_info) @@ -491,7 +491,7 @@ class Base(Plugin): def parse_html_form(self, attr_str="", input_names={}): - return parse_html_form(attr_str, self.html, input_names) + return parse_html_form(attr_str, self.data, input_names) def get_password(self): diff --git a/module/plugins/internal/CaptchaService.py b/module/plugins/internal/CaptchaService.py index 353ac4e13..b3f7841f0 100644 --- a/module/plugins/internal/CaptchaService.py +++ b/module/plugins/internal/CaptchaService.py @@ -26,12 +26,8 @@ class CaptchaService(Captcha): self.fail(_("%s key not found") % self.__name__) - #@TODO: Recheck in 0.4.10, html is now pyfile.data def retrieve_data(self): - if hasattr(self.plugin, "html") and self.plugin.html: - return self.plugin.html - else: - self.fail(_("%s data not found") % self.__name__) + return self.plugin.data or self.plugin.last_html or "" def detect_key(self, data=None): diff --git a/module/plugins/internal/Container.py b/module/plugins/internal/Container.py index b96e6e9b0..16b2df2a8 100644 --- a/module/plugins/internal/Container.py +++ b/module/plugins/internal/Container.py @@ -68,7 +68,7 @@ class Container(Crypter): else: self.fail(_("File not exists")) else: - self.data = self.pyfile.url + self.data = self.pyfile.url #@NOTE: ??? def delete_tmp(self): diff --git a/module/plugins/internal/SimpleCrypter.py b/module/plugins/internal/SimpleCrypter.py index 51b104381..89dc9b1a2 100644 --- a/module/plugins/internal/SimpleCrypter.py +++ b/module/plugins/internal/SimpleCrypter.py @@ -170,7 +170,7 @@ class SimpleCrypter(Crypter): def preload(self): - self.html = self.load(self.pyfile.url, + self.data = self.load(self.pyfile.url, cookies=self.COOKIES, ref=False, decode=self.TEXT_ENCODING) @@ -228,7 +228,7 @@ class SimpleCrypter(Crypter): if not self.LINK_FREE_PATTERN: self.log_warning(_("Free decrypting not implemented")) - links = re.findall(self.LINK_FREE_PATTERN, self.html) + links = re.findall(self.LINK_FREE_PATTERN, self.data) if not links: self.error(_("Free decrypted link not found")) else: @@ -240,7 +240,7 @@ class SimpleCrypter(Crypter): self.log_warning(_("Premium decrypting not implemented")) self.restart(premium=False) - links = re.findall(self.LINK_PREMIUM_PATTERN, self.html) + links = re.findall(self.LINK_PREMIUM_PATTERN, self.data) if not links: self.error(_("Premium decrypted link found")) else: @@ -249,7 +249,7 @@ class SimpleCrypter(Crypter): def get_links(self): """ - Returns the links extracted from self.html + Returns the links extracted from self.data You should override this only if it's impossible to extract links using only the LINK_PATTERN. """ if self.premium: @@ -269,33 +269,33 @@ class SimpleCrypter(Crypter): def handle_pages(self, pyfile): try: - pages = int(re.search(self.PAGES_PATTERN, self.html).group(1)) + pages = int(re.search(self.PAGES_PATTERN, self.data).group(1)) except Exception: pages = 1 for p in xrange(2, pages + 1): - self.html = self.load_page(p) + self.data = self.load_page(p) self.urls.extend(self.get_links()) def check_errors(self): - if not self.html: + if not self.data: self.log_debug("No data to check") return - if self.IP_BLOCKED_PATTERN and re.search(self.IP_BLOCKED_PATTERN, self.html): + if self.IP_BLOCKED_PATTERN and re.search(self.IP_BLOCKED_PATTERN, self.data): self.fail(_("Connection from your current IP address is not allowed")) elif not self.premium: - if self.PREMIUM_ONLY_PATTERN and re.search(self.PREMIUM_ONLY_PATTERN, self.html): + if self.PREMIUM_ONLY_PATTERN and re.search(self.PREMIUM_ONLY_PATTERN, self.data): self.fail(_("Link can be decrypted by premium users only")) - elif self.SIZE_LIMIT_PATTERN and re.search(self.SIZE_LIMIT_PATTERN, self.html): + elif self.SIZE_LIMIT_PATTERN and re.search(self.SIZE_LIMIT_PATTERN, self.data): self.fail(_("Link list too large for free decrypt")) if self.ERROR_PATTERN: - m = re.search(self.ERROR_PATTERN, self.html) + m = re.search(self.ERROR_PATTERN, self.data) if m is not None: try: errmsg = m.group(1) @@ -343,7 +343,7 @@ class SimpleCrypter(Crypter): self.restart(errmsg) elif self.WAIT_PATTERN: - m = re.search(self.WAIT_PATTERN, self.html) + m = re.search(self.WAIT_PATTERN, self.data) if m is not None: try: waitmsg = m.group(1).strip() diff --git a/module/plugins/internal/SimpleHoster.py b/module/plugins/internal/SimpleHoster.py index ce810deb4..f53b80a0a 100644 --- a/module/plugins/internal/SimpleHoster.py +++ b/module/plugins/internal/SimpleHoster.py @@ -238,7 +238,7 @@ class SimpleHoster(Hoster): def preload(self): - self.html = self.load(self.pyfile.url, + self.data = self.load(self.pyfile.url, cookies=self.COOKIES, ref=False, decode=self.TEXT_ENCODING) @@ -310,28 +310,28 @@ class SimpleHoster(Hoster): self.log_debug("Performing custom check rules...") with open(encode(self.last_download), "rb") as f: - self.html = f.read(1048576) #@TODO: Recheck in 0.4.10 + self.data = f.read(1048576) #@TODO: Recheck in 0.4.10 self.check_errors() def check_errors(self): - if not self.html: + if not self.data: self.log_debug("No data to check") return - if self.IP_BLOCKED_PATTERN and re.search(self.IP_BLOCKED_PATTERN, self.html): + if self.IP_BLOCKED_PATTERN and re.search(self.IP_BLOCKED_PATTERN, self.data): self.fail(_("Connection from your current IP address is not allowed")) elif not self.premium: - if self.PREMIUM_ONLY_PATTERN and re.search(self.PREMIUM_ONLY_PATTERN, self.html): + if self.PREMIUM_ONLY_PATTERN and re.search(self.PREMIUM_ONLY_PATTERN, self.data): self.fail(_("File can be downloaded by premium users only")) - elif self.SIZE_LIMIT_PATTERN and re.search(self.SIZE_LIMIT_PATTERN, self.html): + elif self.SIZE_LIMIT_PATTERN and re.search(self.SIZE_LIMIT_PATTERN, self.data): self.fail(_("File too large for free download")) - elif self.DL_LIMIT_PATTERN and re.search(self.DL_LIMIT_PATTERN, self.html): - m = re.search(self.DL_LIMIT_PATTERN, self.html) + elif self.DL_LIMIT_PATTERN and re.search(self.DL_LIMIT_PATTERN, self.data): + m = re.search(self.DL_LIMIT_PATTERN, self.data) try: errmsg = m.group(1) @@ -348,11 +348,11 @@ class SimpleHoster(Hoster): self.wait(wait_time, reconnect=wait_time > self.get_config("max_wait", 10) * 60) self.restart(_("Download limit exceeded")) - if self.HAPPY_HOUR_PATTERN and re.search(self.HAPPY_HOUR_PATTERN, self.html): + if self.HAPPY_HOUR_PATTERN and re.search(self.HAPPY_HOUR_PATTERN, self.data): self.multiDL = True if self.ERROR_PATTERN: - m = re.search(self.ERROR_PATTERN, self.html) + m = re.search(self.ERROR_PATTERN, self.data) if m is not None: try: errmsg = m.group(1).strip() @@ -400,7 +400,7 @@ class SimpleHoster(Hoster): self.restart(errmsg) elif self.WAIT_PATTERN: - m = re.search(self.WAIT_PATTERN, self.html) + m = re.search(self.WAIT_PATTERN, self.data) if m is not None: try: waitmsg = m.group(1).strip() @@ -433,7 +433,7 @@ class SimpleHoster(Hoster): if not self.LINK_FREE_PATTERN: self.log_warning(_("Free download not implemented")) - m = re.search(self.LINK_FREE_PATTERN, self.html) + m = re.search(self.LINK_FREE_PATTERN, self.data) if m is None: self.error(_("Free download link not found")) else: @@ -445,7 +445,7 @@ class SimpleHoster(Hoster): self.log_warning(_("Premium download not implemented")) self.restart(premium=False) - m = re.search(self.LINK_PREMIUM_PATTERN, self.html) + m = re.search(self.LINK_PREMIUM_PATTERN, self.data) if m is None: self.error(_("Premium download link not found")) else: diff --git a/module/plugins/internal/XFSAccount.py b/module/plugins/internal/XFSAccount.py index 02d94b9a3..3e9003577 100644 --- a/module/plugins/internal/XFSAccount.py +++ b/module/plugins/internal/XFSAccount.py @@ -82,13 +82,13 @@ class XFSAccount(MultiAccount): if not self.PLUGIN_URL: #@TODO: Remove in 0.4.10 return - self.html = self.load(self.PLUGIN_URL, + self.data = self.load(self.PLUGIN_URL, get={'op': "my_account"}, cookies=self.COOKIES) - premium = True if re.search(self.PREMIUM_PATTERN, self.html) else False + premium = True if re.search(self.PREMIUM_PATTERN, self.data) else False - m = re.search(self.VALID_UNTIL_PATTERN, self.html) + m = re.search(self.VALID_UNTIL_PATTERN, self.data) if m is not None: expiredate = m.group(1).strip() self.log_debug("Expire date: " + expiredate) @@ -111,7 +111,7 @@ class XFSAccount(MultiAccount): else: self.log_debug("VALID UNTIL PATTERN not found") - m = re.search(self.TRAFFIC_LEFT_PATTERN, self.html) + m = re.search(self.TRAFFIC_LEFT_PATTERN, self.data) if m is not None: try: traffic = m.groupdict() @@ -139,7 +139,7 @@ class XFSAccount(MultiAccount): else: self.log_debug("TRAFFIC LEFT PATTERN not found") - leech = [m.groupdict() for m in re.finditer(self.LEECH_TRAFFIC_PATTERN, self.html)] + leech = [m.groupdict() for m in re.finditer(self.LEECH_TRAFFIC_PATTERN, self.data)] if leech: leechtraffic = 0 try: @@ -173,12 +173,12 @@ class XFSAccount(MultiAccount): def signin(self, user, password, data): - self.html = self.load(self.LOGIN_URL, cookies=self.COOKIES) + self.data = self.load(self.LOGIN_URL, cookies=self.COOKIES) - if re.search(self.LOGIN_SKIP_PATTERN, self.html): + if re.search(self.LOGIN_SKIP_PATTERN, self.data): self.skip_login() - action, inputs = parse_html_form('name="FL"', self.html) + action, inputs = parse_html_form('name="FL"', self.data) if not inputs: inputs = {'op' : "login", 'redirect': self.PLUGIN_URL} @@ -191,17 +191,17 @@ class XFSAccount(MultiAccount): else: url = self.LOGIN_URL - self.html = self.load(url, post=inputs, cookies=self.COOKIES) + self.data = self.load(url, post=inputs, cookies=self.COOKIES) self.check_errors() def check_errors(self): - if not self.html: - self.log_warning(_("No html code to check")) + if not self.data: + self.log_debug("No data to check") return - m = re.search(self.LOGIN_BAN_PATTERN, self.html) + m = re.search(self.LOGIN_BAN_PATTERN, self.data) if m is not None: try: errmsg = m.group(1) @@ -218,7 +218,7 @@ class XFSAccount(MultiAccount): self.fail_login(errmsg) - m = re.search(self.LOGIN_FAIL_PATTERN, self.html) + m = re.search(self.LOGIN_FAIL_PATTERN, self.data) if m is not None: try: errmsg = m.group(1) diff --git a/module/plugins/internal/XFSHoster.py b/module/plugins/internal/XFSHoster.py index 37afdbce0..971b92b64 100644 --- a/module/plugins/internal/XFSHoster.py +++ b/module/plugins/internal/XFSHoster.py @@ -92,19 +92,19 @@ class XFSHoster(SimpleHoster): self.check_errors() - m = re.search(self.LINK_PATTERN, self.html, re.S) + m = re.search(self.LINK_PATTERN, self.data, re.S) if m is not None: break data = self._post_parameters() - self.html = self.load(pyfile.url, post=data, redirect=False) + self.data = self.load(pyfile.url, post=data, redirect=False) m = re.search(r'Location\s*:\s*(.+)', self.req.http.header, re.I) if m and not "op=" in m.group(1): break - m = re.search(self.LINK_PATTERN, self.html, re.S) + m = re.search(self.LINK_PATTERN, self.data, re.S) if m is not None: break else: @@ -123,7 +123,7 @@ class XFSHoster(SimpleHoster): self.fail(_("Only registered or premium users can use url leech feature")) #: Only tested with easybytez.com - self.html = self.load("http://www.%s/" % self.PLUGIN_DOMAIN) + self.data = self.load("http://www.%s/" % self.PLUGIN_DOMAIN) action, inputs = self.parse_html_form() @@ -138,7 +138,7 @@ class XFSHoster(SimpleHoster): self.req.setOption("timeout", 600) #: Wait for file to upload to easybytez.com - self.html = self.load(action, post=inputs) + self.data = self.load(action, post=inputs) self.check_errors() @@ -151,7 +151,7 @@ class XFSHoster(SimpleHoster): stmsg = inputs['st'] if stmsg == 'OK': - self.html = self.load(action, post=inputs) + self.data = self.load(action, post=inputs) elif 'Can not leech file' in stmsg: self.retry(20, 3 * 60, _("Can not leech file")) @@ -163,7 +163,7 @@ class XFSHoster(SimpleHoster): self.fail(stmsg) #: Get easybytez.com link for uploaded file - m = re.search(self.LINK_LEECH_PATTERN, self.html) + m = re.search(self.LINK_LEECH_PATTERN, self.data) if m is None: self.error(_("LINK_LEECH_PATTERN not found")) @@ -195,7 +195,7 @@ class XFSHoster(SimpleHoster): self.fail(_("Missing password")) if not self.premium: - m = re.search(self.WAIT_PATTERN, self.html) + m = re.search(self.WAIT_PATTERN, self.data) if m is not None: wait_time = int(m.group(1)) self.set_wait(wait_time) @@ -216,13 +216,13 @@ class XFSHoster(SimpleHoster): def handle_captcha(self, inputs): - m = re.search(self.CAPTCHA_PATTERN, self.html) + m = re.search(self.CAPTCHA_PATTERN, self.data) if m is not None: captcha_url = m.group(1) inputs['code'] = self.captcha.decrypt(captcha_url) return - m = re.search(self.CAPTCHA_BLOCK_PATTERN, self.html, re.S) + m = re.search(self.CAPTCHA_BLOCK_PATTERN, self.data, re.S) if m is not None: captcha_div = m.group(1) numerals = re.findall(r'<span.*?padding-left\s*:\s*(\d+).*?>(\d)</span>', html_unescape(captcha_div)) @@ -236,7 +236,7 @@ class XFSHoster(SimpleHoster): recaptcha = ReCaptcha(self) try: - captcha_key = re.search(self.RECAPTCHA_PATTERN, self.html).group(1) + captcha_key = re.search(self.RECAPTCHA_PATTERN, self.data).group(1) except Exception: captcha_key = recaptcha.detect_key() @@ -250,7 +250,7 @@ class XFSHoster(SimpleHoster): solvemedia = SolveMedia(self) try: - captcha_key = re.search(self.SOLVEMEDIA_PATTERN, self.html).group(1) + captcha_key = re.search(self.SOLVEMEDIA_PATTERN, self.data).group(1) except Exception: captcha_key = solvemedia.detect_key() |