diff options
Diffstat (limited to 'pyload/plugins/hoster/TurbobitNet.py')
-rw-r--r-- | pyload/plugins/hoster/TurbobitNet.py | 50 |
1 files changed, 22 insertions, 28 deletions
diff --git a/pyload/plugins/hoster/TurbobitNet.py b/pyload/plugins/hoster/TurbobitNet.py index 00d95366c..087052ebd 100644 --- a/pyload/plugins/hoster/TurbobitNet.py +++ b/pyload/plugins/hoster/TurbobitNet.py @@ -15,33 +15,34 @@ from pyload.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, t class TurbobitNet(SimpleHoster): - __name__ = "TurbobitNet" - __type__ = "hoster" - __version__ = "0.12" + __name__ = "TurbobitNet" + __type__ = "hoster" + __version__ = "0.14" __pattern__ = r'http://(?:www\.)?turbobit\.net/(?:download/free/)?(?P<ID>\w+)' __description__ = """Turbobit.net hoster plugin""" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), - ("prOq", None)] + __license__ = "GPLv3" + __authors__ = [("zoidberg", "zoidberg@mujmail.cz"), + ("prOq", None)] - FILE_NAME_PATTERN = r'id="file-title">(?P<N>.+?)<' - FILE_SIZE_PATTERN = r'class="file-size">(?P<S>[\d,.]+) (?P<U>\w+)' + NAME_PATTERN = r'id="file-title">(?P<N>.+?)<' + SIZE_PATTERN = r'class="file-size">(?P<S>[\d.,]+) (?P<U>[\w^_]+)' OFFLINE_PATTERN = r'<h2>File Not Found</h2>|html\(\'File (?:was )?not found' - FILE_URL_REPLACEMENTS = [(__pattern__, "http://turbobit.net/\g<ID>.html")] + URL_REPLACEMENTS = [(__pattern__, "http://turbobit.net/\g<ID>.html")] COOKIES = [(".turbobit.net", "user_lang", "en")] LINK_PATTERN = r'(?P<url>/download/redirect/[^"\']+)' - LIMIT_WAIT_PATTERN = r"<div id='timeout'>(\d+)<" + LIMIT_WAIT_PATTERN = r'<div id=\'timeout\'>(\d+)<' - CAPTCHA_URL_PATTERN = r'<img alt="Captcha" src="(.+?)"' + CAPTCHA_PATTERN = r'<img alt="Captcha" src="(.+?)"' def handleFree(self): - self.url = "http://turbobit.net/download/free/%s" % self.file_info['ID'] + self.url = "http://turbobit.net/download/free/%s" % self.info['ID'] self.html = self.load(self.url, ref=True, decode=True) rtUpdate = self.getRtUpdate() @@ -57,7 +58,7 @@ class TurbobitNet(SimpleHoster): def solveCaptcha(self): - for _ in xrange(5): + for _i in xrange(5): m = re.search(self.LIMIT_WAIT_PATTERN, self.html) if m: wait_time = int(m.group(1)) @@ -66,20 +67,16 @@ class TurbobitNet(SimpleHoster): action, inputs = self.parseHtmlForm("action='#'") if not inputs: - self.parseError("captcha form") + self.error(_("Captcha form not found")) self.logDebug(inputs) if inputs['captcha_type'] == 'recaptcha': recaptcha = ReCaptcha(self) - captcha_key = recaptcha.detect_key() - if captcha_key is None: - self.parseError("ReCaptcha captcha key not found") - - inputs['recaptcha_challenge_field'], inputs['recaptcha_response_field'] = recaptcha.challenge(captcha_key) + inputs['recaptcha_challenge_field'], inputs['recaptcha_response_field'] = recaptcha.challenge() else: - m = re.search(self.CAPTCHA_URL_PATTERN, self.html) + m = re.search(self.CAPTCHA_PATTERN, self.html) if m is None: - self.parseError('captcha') + self.error(_("captcha")) captcha_url = m.group(1) inputs['captcha_response'] = self.decryptCaptcha(captcha_url) @@ -87,13 +84,12 @@ class TurbobitNet(SimpleHoster): self.html = self.load(self.url, post=inputs) if '<div class="captcha-error">Incorrect, try again!<' in self.html: - self.logInfo("Invalid captcha") self.invalidCaptcha() else: self.correctCaptcha() break else: - self.fail("Invalid captcha") + self.fail(_("Invalid captcha")) def getRtUpdate(self): @@ -109,12 +105,11 @@ class TurbobitNet(SimpleHoster): r'zza=\2;for(var zzi=0;zzi<zza.length;zzi++){\1=zza[zzi];', rtUpdate) rtUpdate = re.sub(r"for\((\w+)=", r"for(var \1=", rtUpdate) - self.logDebug("rtUpdate") self.setStorage("rtUpdate", rtUpdate) self.setStorage("timestamp", timestamp()) self.setStorage("version", self.__version__) else: - self.logError("Unable to download, wait for update...") + self.logError(_("Unable to download, wait for update...")) self.tempOffline() return rtUpdate @@ -127,7 +122,7 @@ class TurbobitNet(SimpleHoster): if m: url = "http://turbobit.net%s%s" % m.groups() else: - url = "http://turbobit.net/files/timeout.js?ver=%s" % "".join(random.choice('0123456789ABCDEF') for _ in xrange(32)) + url = "http://turbobit.net/files/timeout.js?ver=%s" % "".join(random.choice('0123456789ABCDEF') for _i in xrange(32)) fun = self.load(url) @@ -135,7 +130,7 @@ class TurbobitNet(SimpleHoster): for b in [1, 3]: self.jscode = "var id = \'%s\';var b = %d;var inn = \'%s\';%sout" % ( - self.file_info['ID'], b, quote(fun), rtUpdate) + self.info['ID'], b, quote(fun), rtUpdate) try: out = self.js.eval(self.jscode) @@ -164,14 +159,13 @@ class TurbobitNet(SimpleHoster): def handlePremium(self): self.logDebug("Premium download as user %s" % self.user) - self.html = self.load(self.pyfile.url) # Useless in 0.5 self.downloadFile() def downloadFile(self): m = re.search(self.LINK_PATTERN, self.html) if m is None: - self.parseError("Download link not found") + self.error(_("Download link not found")) self.url = "http://turbobit.net" + m.group('url') self.download(self.url) |