diff options
Diffstat (limited to 'module')
41 files changed, 122 insertions, 115 deletions
| diff --git a/module/plugins/container/RSDF.py b/module/plugins/container/RSDF.py index 0c43f0e6c..e263c3fe3 100644 --- a/module/plugins/container/RSDF.py +++ b/module/plugins/container/RSDF.py @@ -39,7 +39,7 @@ class RSDF(Container):              with open(infile, 'r') as rsdf:                  data = rsdf.read()          except IOError, e: -            self.fail(str(e)) +            self.fail(e)          if re.search(r"<title>404 - Not Found</title>", data) is None:              data = binascii.unhexlify(''.join(data.split())) diff --git a/module/plugins/crypter/FilecryptCc.py b/module/plugins/crypter/FilecryptCc.py index 51e6eb296..096fd414d 100644 --- a/module/plugins/crypter/FilecryptCc.py +++ b/module/plugins/crypter/FilecryptCc.py @@ -8,13 +8,13 @@ from Crypto.Cipher import AES  from urlparse import urljoin  from module.plugins.Crypter import Crypter -from module.plugins.internal.CaptchaService import ReCaptchaV2 +from module.plugins.internal.CaptchaService import ReCaptcha  class FilecryptCc(Crypter):      __name__    = "FilecryptCc"      __type__    = "crypter" -    __version__ = "0.10" +    __version__ = "0.11"      __pattern__ = r'https?://(?:www\.)?filecrypt\.cc/Container/\w+' @@ -74,7 +74,7 @@ class FilecryptCc(Crypter):          self.logInfo(_("Folder is password protected"))          password = self.getPassword() -         +          if not password:              self.fail(_("Please enter the password in package section and try again")) @@ -108,15 +108,19 @@ class FilecryptCc(Crypter):                                             post={'button.x': captcha_code[0], 'button.y': captcha_code[1]},                                             cookies=True,                                             decode=True) -                                            -        elif 'class="g-recaptcha"' in self.html:  #: ReCaptchaV2 -            captcha = ReCaptchaV2(self) -            response = captcha.doTheCaptcha(self.pyfile.url.split("/")[2]) -            self.siteWithLinks = self.load(self.pyfile.url, cookies=True, decode=True, post={"g-recaptcha-response":response}) -             +          else: -            self.logInfo(_("No captcha found")) -            self.siteWithLinks = self.html +            recaptcha   = ReCaptcha(self) +            captcha_key = recaptcha.detect_key() + +            if captcha_key: +                response, challenge = recaptcha.challenge(captcha_key) +                self.siteWithLinks  = self.load(self.pyfile.url, +                                                post={'g-recaptcha-response': response}, +                                                decode=True) +            else: +                self.logInfo(_("No captcha found")) +                self.siteWithLinks = self.html          if "recaptcha_image" in self.siteWithLinks or "data-sitekey" in self.siteWithLinks:              self.invalidCaptcha() diff --git a/module/plugins/crypter/MegaCoNzFolder.py b/module/plugins/crypter/MegaCoNzFolder.py index bec4eba22..954bfb9a5 100644 --- a/module/plugins/crypter/MegaCoNzFolder.py +++ b/module/plugins/crypter/MegaCoNzFolder.py @@ -29,4 +29,4 @@ class MegaCoNzFolder(Crypter):          self.urls = re.findall(r'(https://mega.co.nz/#N!.+?)<', self.html)          if not self.urls:  #@TODO: Remove in 0.4.10 -            self.fail("No link grabbed") +            self.fail(_("No link grabbed")) diff --git a/module/plugins/crypter/NCryptIn.py b/module/plugins/crypter/NCryptIn.py index 7c881ce75..f75f6d484 100644 --- a/module/plugins/crypter/NCryptIn.py +++ b/module/plugins/crypter/NCryptIn.py @@ -13,7 +13,7 @@ from module.plugins.internal.CaptchaService import ReCaptcha  class NCryptIn(Crypter):      __name__    = "NCryptIn"      __type__    = "crypter" -    __version__ = "1.33" +    __version__ = "1.34"      __pattern__ = r'http://(?:www\.)?ncrypt\.in/(?P<TYPE>folder|link|frame)-([^/\?]+)'      __config__  = [("use_subfolder", "bool", "Save package to subfolder", True), @@ -156,7 +156,7 @@ class NCryptIn(Crypter):              captcha_key = re.search(r'\?k=(.*?)"', form).group(1)              self.logDebug("Resolving ReCaptcha with key [%s]" % captcha_key)              recaptcha = ReCaptcha(self) -            challenge, response = recaptcha.challenge(captcha_key) +            response, challenge = recaptcha.challenge(captcha_key)              postData['recaptcha_challenge_field'] = challenge              postData['recaptcha_response_field']  = response @@ -205,7 +205,7 @@ class NCryptIn(Crypter):          elif link_source_type == "web":              return self.handleWebLinks()          else: -            self.error('Unknown source type "%s" (this is probably a bug)' % link_source_type) +            self.error(_('Unknown source type "%s"') % link_source_type)      def handleSingleLink(self): diff --git a/module/plugins/crypter/RelinkUs.py b/module/plugins/crypter/RelinkUs.py index 0fd80d593..a6014c866 100644 --- a/module/plugins/crypter/RelinkUs.py +++ b/module/plugins/crypter/RelinkUs.py @@ -191,7 +191,7 @@ class RelinkUs(Crypter):          elif source == 'web':              return self.handleWEBLinks()          else: -            self.error('Unknown source type "%s" (this is probably a bug)' % source) +            self.error(_('Unknown source type "%s"') % source)      def handleCNL2Links(self): @@ -223,8 +223,10 @@ class RelinkUs(Crypter):                  with open(dlc_filepath, "wb") as f:                      f.write(dlc)                  package_links.append(dlc_filepath) +              except Exception: -                self.fail("Unable to download DLC container") +                self.fail(_("Unable to download DLC container")) +          return package_links diff --git a/module/plugins/crypter/SafelinkingNet.py b/module/plugins/crypter/SafelinkingNet.py index a56a0a44c..8e46e1e41 100644 --- a/module/plugins/crypter/SafelinkingNet.py +++ b/module/plugins/crypter/SafelinkingNet.py @@ -14,7 +14,7 @@ from module.plugins.internal.CaptchaService import SolveMedia  class SafelinkingNet(Crypter):      __name__    = "SafelinkingNet"      __type__    = "crypter" -    __version__ = "0.13" +    __version__ = "0.14"      __pattern__ = r'https?://(?:www\.)?safelinking\.net/([pd])/\w+'      __config__  = [("use_subfolder", "bool", "Save package to subfolder", True), @@ -57,7 +57,7 @@ class SafelinkingNet(Crypter):                      else:                          self.fail(_("Error parsing captcha")) -                    challenge, response = captcha.challenge(captchaKey) +                    response, challenge = captcha.challenge(captchaKey)                      postData['adcopy_challenge'] = challenge                      postData['adcopy_response']  = response diff --git a/module/plugins/hooks/DeathByCaptcha.py b/module/plugins/hooks/DeathByCaptcha.py index 050b6fe15..d513c446d 100644 --- a/module/plugins/hooks/DeathByCaptcha.py +++ b/module/plugins/hooks/DeathByCaptcha.py @@ -135,7 +135,7 @@ class DeathByCaptcha(Hook):      def submit(self, captcha, captchaType="file", match=None): -        #workaround multipart-post bug in HTTPRequest.py +        #@NOTE: Workaround multipart-post bug in HTTPRequest.py          if re.match("^\w*$", self.getConfig("passkey")):              multipart = True              data = (FORM_FILE, captcha) diff --git a/module/plugins/hooks/ExtractArchive.py b/module/plugins/hooks/ExtractArchive.py index bdbaf64af..f2f4b5207 100644 --- a/module/plugins/hooks/ExtractArchive.py +++ b/module/plugins/hooks/ExtractArchive.py @@ -58,7 +58,7 @@ from module.utils import save_join, uniqify  class ExtractArchive(Hook):      __name__    = "ExtractArchive"      __type__    = "hook" -    __version__ = "1.04" +    __version__ = "1.05"      __config__ = [("activated"    , "bool"  , "Activated"                                 , True                                                                     ),                    ("fullpath"     , "bool"  , "Extract full path"                         , True                                                                     ), @@ -305,33 +305,33 @@ class ExtractArchive(Hook):              encrypted = True  #@TODO: set to `False`              passwords = self.getPasswords() -            # try: -                # self.logInfo(basename(plugin.file), "Verifying...") +            try: +                self.logInfo(basename(plugin.file), "Verifying...") -                # tmp_password    = plugin.password -                # plugin.password = ""  #: Force verifying without password +                tmp_password    = plugin.password +                plugin.password = ""  #: Force verifying without password -                # plugin.verify() +                plugin.verify() -            # except PasswordError: -                # encrypted = True +            except PasswordError: +                encrypted = True -            # except CRCError: -                # self.logWarning(basename(plugin.file), _("Archive damaged")) +            except CRCError: +                self.logWarning(basename(plugin.file), _("Archive damaged")) -                # if not self.getConfig("repair"): -                    # raise CRCError +                if not self.getConfig("repair"): +                    raise CRCError -                # elif plugin.repair(): -                    # self.logInfo(basename(plugin.file), _("Successfully repaired")) +                elif plugin.repair(): +                    self.logInfo(basename(plugin.file), _("Successfully repaired")) -                # elif not self.getConfig("keepbroken"): -                    # raise ArchiveError(_("Broken archive")) +                elif not self.getConfig("keepbroken"): +                    raise ArchiveError(_("Broken archive")) -                # else: -                    # self.logInfo(basename(plugin.file), _("All OK")) +                else: +                    self.logInfo(basename(plugin.file), _("All OK")) -            # plugin.password = tmp_password +            plugin.password = tmp_password              if not encrypted:                  plugin.extract(progress) diff --git a/module/plugins/hooks/ImageTyperz.py b/module/plugins/hooks/ImageTyperz.py index 768129e4a..d62fed385 100644 --- a/module/plugins/hooks/ImageTyperz.py +++ b/module/plugins/hooks/ImageTyperz.py @@ -82,7 +82,7 @@ class ImageTyperz(Hook):          req.c.setopt(LOW_SPEED_TIME, 80)          try: -            #workaround multipart-post bug in HTTPRequest.py +            #@NOTE: Workaround multipart-post bug in HTTPRequest.py              if re.match("^\w*$", self.getConfig("passkey")):                  multipart = True                  data = (FORM_FILE, captcha) diff --git a/module/plugins/hoster/BitshareCom.py b/module/plugins/hoster/BitshareCom.py index f7b4d2709..657e70e56 100644 --- a/module/plugins/hoster/BitshareCom.py +++ b/module/plugins/hoster/BitshareCom.py @@ -11,7 +11,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo  class BitshareCom(SimpleHoster):      __name__    = "BitshareCom"      __type__    = "hoster" -    __version__ = "0.52" +    __version__ = "0.53"      __pattern__ = r'http://(?:www\.)?bitshare\.com/(files/)?(?(1)|\?f=)(?P<ID>\w+)(?(1)/(?P<NAME>.+?)\.html)' @@ -114,7 +114,7 @@ class BitshareCom(SimpleHoster):              # Try up to 3 times              for i in xrange(3): -                challenge, response = recaptcha.challenge() +                response, challenge = recaptcha.challenge()                  res = self.load("http://bitshare.com/files-ajax/" + self.file_id + "/request.html",                                       post={"request"                  : "validateCaptcha",                                             "ajaxid"                   : self.ajaxid, diff --git a/module/plugins/hoster/CatShareNet.py b/module/plugins/hoster/CatShareNet.py index ba8996193..339253aeb 100644 --- a/module/plugins/hoster/CatShareNet.py +++ b/module/plugins/hoster/CatShareNet.py @@ -9,7 +9,7 @@ from module.plugins.internal.CaptchaService import ReCaptcha  class CatShareNet(SimpleHoster):      __name__    = "CatShareNet"      __type__    = "hoster" -    __version__ = "0.10" +    __version__ = "0.11"      __pattern__ = r'http://(?:www\.)?catshare\.net/\w{16}' @@ -46,7 +46,7 @@ class CatShareNet(SimpleHoster):      def handleFree(self, pyfile):          recaptcha = ReCaptcha(self) -        challenge, response = recaptcha.challenge() +        response, challenge = recaptcha.challenge()          self.html = self.load(pyfile.url,                                post={'recaptcha_challenge_field': challenge,                                      'recaptcha_response_field' : response}) diff --git a/module/plugins/hoster/CrockoCom.py b/module/plugins/hoster/CrockoCom.py index 31d0eec95..474042a5a 100644 --- a/module/plugins/hoster/CrockoCom.py +++ b/module/plugins/hoster/CrockoCom.py @@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo  class CrockoCom(SimpleHoster):      __name__    = "CrockoCom"      __type__    = "hoster" -    __version__ = "0.18" +    __version__ = "0.19"      __pattern__ = r'http://(?:www\.)?(crocko|easy-share)\.com/\w+' @@ -52,7 +52,7 @@ class CrockoCom(SimpleHoster):          recaptcha = ReCaptcha(self)          for _i in xrange(5): -            inputs['recaptcha_challenge_field'], inputs['recaptcha_response_field'] = recaptcha.challenge() +            inputs['recaptcha_response_field'], inputs['recaptcha_challenge_field'] = recaptcha.challenge()              self.download(action, post=inputs)              if self.checkDownload({"captcha": recaptcha.KEY_AJAX_PATTERN}): diff --git a/module/plugins/hoster/DateiTo.py b/module/plugins/hoster/DateiTo.py index 99b86e000..e5061e026 100644 --- a/module/plugins/hoster/DateiTo.py +++ b/module/plugins/hoster/DateiTo.py @@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo  class DateiTo(SimpleHoster):      __name__    = "DateiTo"      __type__    = "hoster" -    __version__ = "0.06" +    __version__ = "0.07"      __pattern__ = r'http://(?:www\.)?datei\.to/datei/(?P<ID>\w+)\.html' @@ -52,7 +52,7 @@ class DateiTo(SimpleHoster):              data = dict(x.split('=') for x in m.group(2).split('&'))              if url.endswith('recaptcha.php'): -                data['recaptcha_challenge_field'], data['recaptcha_response_field'] = recaptcha.challenge() +                data['recaptcha_response_field'], data['recaptcha_challenge_field'] = recaptcha.challenge()          else:              self.fail(_("Too bad...")) diff --git a/module/plugins/hoster/DepositfilesCom.py b/module/plugins/hoster/DepositfilesCom.py index 6e7f2909c..3af309cae 100644 --- a/module/plugins/hoster/DepositfilesCom.py +++ b/module/plugins/hoster/DepositfilesCom.py @@ -11,7 +11,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo  class DepositfilesCom(SimpleHoster):      __name__    = "DepositfilesCom"      __type__    = "hoster" -    __version__ = "0.52" +    __version__ = "0.53"      __pattern__ = r'https?://(?:www\.)?(depositfiles\.com|dfiles\.(eu|ru))(/\w{1,3})?/files/(?P<ID>\w+)' @@ -77,7 +77,7 @@ class DepositfilesCom(SimpleHoster):              if '<input type=button value="Continue" onclick="check_recaptcha' in self.html:                  if 'response' in params:                      self.invalidCaptcha() -                params['challenge'], params['response'] = recaptcha.challenge(captcha_key) +                params['response'], params['challenge'] = recaptcha.challenge(captcha_key)                  self.logDebug(params)                  continue diff --git a/module/plugins/hoster/ExtabitCom.py b/module/plugins/hoster/ExtabitCom.py index 5c2976a29..68695faad 100644 --- a/module/plugins/hoster/ExtabitCom.py +++ b/module/plugins/hoster/ExtabitCom.py @@ -11,7 +11,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, s  class ExtabitCom(SimpleHoster):      __name__    = "ExtabitCom"      __type__    = "hoster" -    __version__ = "0.64" +    __version__ = "0.65"      __pattern__ = r'http://(?:www\.)?extabit\.com/(file|go|fid)/(?P<ID>\w+)' @@ -50,7 +50,7 @@ class ExtabitCom(SimpleHoster):              for _i in xrange(5):                  get_data = {"type": "recaptcha"} -                get_data['challenge'], get_data['capture'] = recaptcha.challenge(captcha_key) +                get_data['capture'], get_data['challenge'] = recaptcha.challenge(captcha_key)                  res = json_loads(self.load("http://extabit.com/file/%s/" % fileID, get=get_data))                  if "ok" in res:                      self.correctCaptcha() diff --git a/module/plugins/hoster/FilecloudIo.py b/module/plugins/hoster/FilecloudIo.py index bc328ddbd..fb1aea58f 100644 --- a/module/plugins/hoster/FilecloudIo.py +++ b/module/plugins/hoster/FilecloudIo.py @@ -10,7 +10,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo  class FilecloudIo(SimpleHoster):      __name__    = "FilecloudIo"      __type__    = "hoster" -    __version__ = "0.06" +    __version__ = "0.08"      __pattern__ = r'http://(?:www\.)?(?:filecloud\.io|ifile\.it|mihd\.net)/(?P<ID>\w+)' @@ -59,7 +59,7 @@ class FilecloudIo(SimpleHoster):          if captcha_key is None:              self.error(_("ReCaptcha key not found")) -        challenge, response = recaptcha.challenge(captcha_key) +        response, challenge = recaptcha.challenge(captcha_key)          self.account.form_data = {"recaptcha_challenge_field": challenge,                                    "recaptcha_response_field" : response}          self.account.relogin(self.user) @@ -78,7 +78,7 @@ class FilecloudIo(SimpleHoster):              data['ctype'] = "recaptcha"              for _i in xrange(5): -                data['recaptcha_challenge'], data['recaptcha_response'] = recaptcha.challenge(captcha_key) +                data['recaptcha_response'], data['recaptcha_challenge'] = recaptcha.challenge(captcha_key)                  json_url = "http://filecloud.io/download-request.json"                  res = self.load(json_url, post=data) diff --git a/module/plugins/hoster/FilepostCom.py b/module/plugins/hoster/FilepostCom.py index 4dd36c6e4..25def94e8 100644 --- a/module/plugins/hoster/FilepostCom.py +++ b/module/plugins/hoster/FilepostCom.py @@ -12,7 +12,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo  class FilepostCom(SimpleHoster):      __name__    = "FilepostCom"      __type__    = "hoster" -    __version__ = "0.32" +    __version__ = "0.33"      __pattern__ = r'https?://(?:www\.)?(?:filepost\.com/files|fp\.io)/(?P<ID>[^/]+)' @@ -74,7 +74,7 @@ class FilepostCom(SimpleHoster):              for i in xrange(5):                  get_dict['JsHttpRequest'] = str(int(time() * 10000)) + '-xml'                  if i: -                    post_dict['recaptcha_challenge_field'], post_dict['recaptcha_response_field'] = recaptcha.challenge( +                    post_dict['recaptcha_response_field'], post_dict['recaptcha_challenge_field'] = recaptcha.challenge(                          captcha_key)                      self.logDebug(u"RECAPTCHA: %s : %s : %s" % (                          captcha_key, post_dict['recaptcha_challenge_field'], post_dict['recaptcha_response_field'])) diff --git a/module/plugins/hoster/FilerNet.py b/module/plugins/hoster/FilerNet.py index a668a834b..f0b37e4cb 100644 --- a/module/plugins/hoster/FilerNet.py +++ b/module/plugins/hoster/FilerNet.py @@ -16,7 +16,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo  class FilerNet(SimpleHoster):      __name__    = "FilerNet"      __type__    = "hoster" -    __version__ = "0.13" +    __version__ = "0.14"      __pattern__ = r'https?://(?:www\.)?filer\.net/get/\w+' @@ -56,7 +56,7 @@ class FilerNet(SimpleHoster):          recaptcha = ReCaptcha(self)          for _i in xrange(5): -            challenge, response = recaptcha.challenge() +            response, challenge = recaptcha.challenge()              #@NOTE: Work-around for v0.4.9 just_header issue              #@TODO: Check for v0.4.10 diff --git a/module/plugins/hoster/FileserveCom.py b/module/plugins/hoster/FileserveCom.py index 515ec9029..6f316cea3 100644 --- a/module/plugins/hoster/FileserveCom.py +++ b/module/plugins/hoster/FileserveCom.py @@ -33,7 +33,7 @@ def checkFile(plugin, urls):  class FileserveCom(Hoster):      __name__    = "FileserveCom"      __type__    = "hoster" -    __version__ = "0.53" +    __version__ = "0.54"      __pattern__ = r'http://(?:www\.)?fileserve\.com/file/(?P<ID>[^/]+)' @@ -161,7 +161,7 @@ class FileserveCom(Hoster):          recaptcha = ReCaptcha(self)          for _i in xrange(5): -            challenge, response = recaptcha.challenge(captcha_key) +            response, challenge = recaptcha.challenge(captcha_key)              res = json_loads(self.load(self.URLS[2],                                         post={'recaptcha_challenge_field'  : challenge,                                               'recaptcha_response_field'   : response, diff --git a/module/plugins/hoster/Keep2ShareCc.py b/module/plugins/hoster/Keep2ShareCc.py index d02b9f709..34bc3de54 100644 --- a/module/plugins/hoster/Keep2ShareCc.py +++ b/module/plugins/hoster/Keep2ShareCc.py @@ -11,7 +11,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo  class Keep2ShareCc(SimpleHoster):      __name__    = "Keep2ShareCc"      __type__    = "hoster" -    __version__ = "0.20" +    __version__ = "0.21"      __pattern__ = r'https?://(?:www\.)?(keep2share|k2s|keep2s)\.cc/file/(?P<ID>\w+)' @@ -29,7 +29,8 @@ class Keep2ShareCc(SimpleHoster):      OFFLINE_PATTERN      = r'File not found or deleted|Sorry, this file is blocked or deleted|Error 404'      TEMP_OFFLINE_PATTERN = r'Downloading blocked due to' -    LINK_FREE_PATTERN = LINK_PREMIUM_PATTERN = r'"([^"]+url.html?file=.+?)"|window\.location\.href = \'(.+?)\';' +    LINK_FREE_PATTERN    = r'"([^"]+url.html?file=.+?)"|window\.location\.href = \'(.+?)\';' +    LINK_PREMIUM_PATTERN = r'window\.location\.href = \'(.+?)\';'      CAPTCHA_PATTERN = r'src="(/file/captcha\.html.+?)"' @@ -77,9 +78,7 @@ class Keep2ShareCc(SimpleHoster):              self.wait(30) -            self.html = self.load(pyfile.url, post={'uniqueId': self.fid, 'free': 1}) - -            self.checkErrors() +            self.html = self.load(pyfile.url)              m = re.search(self.LINK_FREE_PATTERN, self.html)              if m is None: @@ -100,13 +99,13 @@ class Keep2ShareCc(SimpleHoster):              captcha_url = urljoin("http://k2s.cc/", m.group(1))              post_data['CaptchaForm[code]'] = self.decryptCaptcha(captcha_url)          else: -            challenge, response = recaptcha.challenge() +            response, challenge = recaptcha.challenge()              post_data.update({'recaptcha_challenge_field': challenge,                                'recaptcha_response_field' : response})          self.html = self.load(self.pyfile.url, post=post_data) -        if 'recaptcha' not in self.html: +        if 'verification code is incorrect' not in self.html:              self.correctCaptcha()          else:              self.invalidCaptcha() diff --git a/module/plugins/hoster/KingfilesNet.py b/module/plugins/hoster/KingfilesNet.py index a75ef5f3e..eb4d34cc2 100644 --- a/module/plugins/hoster/KingfilesNet.py +++ b/module/plugins/hoster/KingfilesNet.py @@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo  class KingfilesNet(SimpleHoster):      __name__    = "KingfilesNet"      __type__    = "hoster" -    __version__ = "0.06" +    __version__ = "0.07"      __pattern__ = r'http://(?:www\.)?kingfiles\.net/(?P<ID>\w{12})' @@ -46,7 +46,7 @@ class KingfilesNet(SimpleHoster):          self.html = self.load(pyfile.url, post=post_data, cookies=True, decode=True)          solvemedia = SolveMedia(self) -        challenge, response = solvemedia.challenge() +        response, challenge = solvemedia.challenge()          # Make the downloadlink appear and load the file          m = re.search(self.RAND_ID_PATTERN, self.html) diff --git a/module/plugins/hoster/LetitbitNet.py b/module/plugins/hoster/LetitbitNet.py index 6d5641778..cd922aea7 100644 --- a/module/plugins/hoster/LetitbitNet.py +++ b/module/plugins/hoster/LetitbitNet.py @@ -36,7 +36,7 @@ def getInfo(urls):  class LetitbitNet(SimpleHoster):      __name__    = "LetitbitNet"      __type__    = "hoster" -    __version__ = "0.29" +    __version__ = "0.30"      __pattern__ = r'https?://(?:www\.)?(letitbit|shareflare)\.net/download/.+' @@ -96,7 +96,7 @@ class LetitbitNet(SimpleHoster):          self.logDebug(res)          recaptcha = ReCaptcha(self) -        challenge, response = recaptcha.challenge() +        response, challenge = recaptcha.challenge()          post_data = {"recaptcha_challenge_field": challenge,                       "recaptcha_response_field": response, diff --git a/module/plugins/hoster/LoadTo.py b/module/plugins/hoster/LoadTo.py index b21a69b5f..a16735cf4 100644 --- a/module/plugins/hoster/LoadTo.py +++ b/module/plugins/hoster/LoadTo.py @@ -13,7 +13,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo  class LoadTo(SimpleHoster):      __name__    = "LoadTo"      __type__    = "hoster" -    __version__ = "0.19" +    __version__ = "0.20"      __pattern__ = r'http://(?:www\.)?load\.to/\w+' @@ -58,7 +58,7 @@ class LoadTo(SimpleHoster):          if captcha_key is None:              self.download(download_url)          else: -            challenge, response = solvemedia.challenge(captcha_key) +            response, challenge = solvemedia.challenge(captcha_key)              self.download(download_url, post={"adcopy_challenge": challenge, "adcopy_response": response}) diff --git a/module/plugins/hoster/LuckyShareNet.py b/module/plugins/hoster/LuckyShareNet.py index 09300a41a..08f4f48dd 100644 --- a/module/plugins/hoster/LuckyShareNet.py +++ b/module/plugins/hoster/LuckyShareNet.py @@ -11,7 +11,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo  class LuckyShareNet(SimpleHoster):      __name__    = "LuckyShareNet"      __type__    = "hoster" -    __version__ = "0.05" +    __version__ = "0.06"      __pattern__ = r'https?://(?:www\.)?luckyshare\.net/(?P<ID>\d{10,})' @@ -52,7 +52,7 @@ class LuckyShareNet(SimpleHoster):          recaptcha = ReCaptcha(self)          for _i in xrange(5): -            challenge, response = recaptcha.challenge() +            response, challenge = recaptcha.challenge()              rep = self.load(r"http://luckyshare.net/download/verify/challenge/%s/response/%s/hash/%s" %                              (challenge, response, json['hash']), decode=True)              self.logDebug("JSON: " + rep) diff --git a/module/plugins/hoster/MediafireCom.py b/module/plugins/hoster/MediafireCom.py index d404498f3..bc81c8202 100644 --- a/module/plugins/hoster/MediafireCom.py +++ b/module/plugins/hoster/MediafireCom.py @@ -54,7 +54,7 @@ def getInfo(urls):  class MediafireCom(SimpleHoster):      __name__    = "MediafireCom"      __type__    = "hoster" -    __version__ = "0.83" +    __version__ = "0.84"      __pattern__ = r'http://(?:www\.)?mediafire\.com/(file/|(view/?|download\.php)?\?)(\w{11}|\w{15})($|/)' @@ -121,7 +121,7 @@ class MediafireCom(SimpleHoster):      def checkCaptcha(self):          solvemedia = SolveMedia(self) -        challenge, response = solvemedia.challenge() +        response, challenge = solvemedia.challenge()          self.html = self.load(self.link,                                post={'adcopy_challenge': challenge,                                      'adcopy_response' : response}, diff --git a/module/plugins/hoster/MegaCoNz.py b/module/plugins/hoster/MegaCoNz.py index fbd34c563..4ad20b265 100644 --- a/module/plugins/hoster/MegaCoNz.py +++ b/module/plugins/hoster/MegaCoNz.py @@ -124,7 +124,7 @@ class MegaCoNz(Hoster):              df = open(file_decrypted, "wb")          except IOError, e: -            self.fail(str(e)) +            self.fail(e)          chunk_size = 2 ** 15  # buffer size, 32k          # file_mac   = [0, 0, 0, 0]  # calculate CBC-MAC for checksum @@ -160,7 +160,7 @@ class MegaCoNz(Hoster):          # if file_mac[0] ^ file_mac[1], file_mac[2] ^ file_mac[3] != meta_mac:              # os.remove(file_decrypted) -            # self.fail("Checksum mismatch") +            # self.fail(_("Checksum mismatch"))          os.remove(file_crypted)          self.lastDownload = fs_decode(file_decrypted) diff --git a/module/plugins/hoster/NetloadIn.py b/module/plugins/hoster/NetloadIn.py index 35c814656..44f45696f 100644 --- a/module/plugins/hoster/NetloadIn.py +++ b/module/plugins/hoster/NetloadIn.py @@ -62,7 +62,7 @@ def getInfo(urls):  class NetloadIn(Hoster):      __name__    = "NetloadIn"      __type__    = "hoster" -    __version__ = "0.47" +    __version__ = "0.48"      __pattern__ = r'https?://(?:[^/]*\.)?netload\.in/(?:datei(.*?)(?:\.htm|/)|index\.php?id=10&file_id=)' @@ -235,7 +235,7 @@ class NetloadIn(Hoster):          recaptcha = ReCaptcha(self)          for _i in xrange(5): -            challenge, response = recaptcha.challenge() +            response, challenge = recaptcha.challenge()              response_page = self.load("http://www.netload.in/index.php?id=10",                                        post={'captcha_check'            : '1', @@ -254,7 +254,7 @@ class NetloadIn(Hoster):                  download_url = self.get_file_url(response_page)                  self.logDebug("Download URL after get_file: " + download_url)                  if not download_url.startswith("http://"): -                    self.error("download url: %s" % download_url) +                    self.error(_("Download url: %s") % download_url)                  self.wait()                  self.url = download_url diff --git a/module/plugins/hoster/NitroflareCom.py b/module/plugins/hoster/NitroflareCom.py index 722fb6eaf..e21d067b3 100644 --- a/module/plugins/hoster/NitroflareCom.py +++ b/module/plugins/hoster/NitroflareCom.py @@ -16,7 +16,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster  class NitroflareCom(SimpleHoster):      __name__    = "NitroflareCom"      __type__    = "hoster" -    __version__ = "0.06" +    __version__ = "0.07"      __pattern__ = r'https?://(?:www\.)?nitroflare\.com/view/(?P<ID>[\w^_]+)' @@ -32,6 +32,8 @@ class NitroflareCom(SimpleHoster):      LINK_FREE_PATTERN = r'(https?://[\w\-]+\.nitroflare\.com/.+?)"' +    RECAPTCHA_KEY = "6Lenx_USAAAAAF5L1pmTWvWcH73dipAEzNnmNLgy" +      PREMIUM_ONLY_PATTERN = r'This file is available with Premium only'      WAIT_PATTERN         = r'You have to wait .+?<'      ERROR_PATTERN        = r'downloading is not possible' @@ -81,7 +83,7 @@ class NitroflareCom(SimpleHoster):          self.wait(wait_time)          recaptcha = ReCaptcha(self) -        challenge, response = recaptcha.challenge("6Lenx_USAAAAAF5L1pmTWvWcH73dipAEzNnmNLgy") +        response, challenge = recaptcha.challenge(self.RECAPTCHA_KEY)          self.html = self.load("http://nitroflare.com/ajax/freeDownload.php",                                post={'method'                   : "fetchDownload", diff --git a/module/plugins/hoster/NoPremiumPl.py b/module/plugins/hoster/NoPremiumPl.py index 361d48c2d..43ae8b3cc 100644 --- a/module/plugins/hoster/NoPremiumPl.py +++ b/module/plugins/hoster/NoPremiumPl.py @@ -83,14 +83,14 @@ class NoPremiumPl(MultiHoster):                  # error code isn't yet added to plugin                  self.fail(                      parsed["errstring"] -                    or "Unknown error (code: %s)" % parsed["errno"] +                    or _("Unknown error (code: %s)") % parsed["errno"]                  )          if "sdownload" in parsed:              if parsed["sdownload"] == "1":                  self.fail( -                    "Download from %s is possible only using NoPremium.pl webiste \ -                    directly. Update this plugin." % parsed["hosting"]) +                    _("Download from %s is possible only using NoPremium.pl website \ +                    directly") % parsed["hosting"])          pyfile.name = parsed["filename"]          pyfile.size = parsed["filesize"] diff --git a/module/plugins/hoster/OboomCom.py b/module/plugins/hoster/OboomCom.py index 588d8f64a..725763345 100644 --- a/module/plugins/hoster/OboomCom.py +++ b/module/plugins/hoster/OboomCom.py @@ -13,7 +13,7 @@ from module.plugins.internal.CaptchaService import ReCaptcha  class OboomCom(Hoster):      __name__    = "OboomCom"      __type__    = "hoster" -    __version__ = "0.30" +    __version__ = "0.31"      __pattern__ = r'https?://(?:www\.)?oboom\.com/(#(id=|/)?)?(?P<ID>\w{8})' @@ -74,7 +74,7 @@ class OboomCom(Hoster):          recaptcha = ReCaptcha(self)          for _i in xrange(5): -            challenge, response = recaptcha.challenge(self.RECAPTCHA_KEY) +            response, challenge = recaptcha.challenge(self.RECAPTCHA_KEY)              apiUrl = "https://www.oboom.com/1.0/download/ticket"              params = {"recaptcha_challenge_field": challenge,                        "recaptcha_response_field": response, diff --git a/module/plugins/hoster/RapideoPl.py b/module/plugins/hoster/RapideoPl.py index 2f7365e3b..85591f51f 100644 --- a/module/plugins/hoster/RapideoPl.py +++ b/module/plugins/hoster/RapideoPl.py @@ -83,14 +83,14 @@ class RapideoPl(MultiHoster):                  # error code isn't yet added to plugin                  self.fail(                      parsed["errstring"] -                    or "Unknown error (code: %s)" % parsed["errno"] +                    or _("Unknown error (code: %s)") % parsed["errno"]                  )          if "sdownload" in parsed:              if parsed["sdownload"] == "1":                  self.fail( -                    "Download from %s is possible only using Rapideo.pl webiste \ -                    directly. Update this plugin." % parsed["hosting"]) +                    _("Download from %s is possible only using Rapideo.pl website \ +                    directly") % parsed["hosting"])          pyfile.name = parsed["filename"]          pyfile.size = parsed["filesize"] diff --git a/module/plugins/hoster/RapidgatorNet.py b/module/plugins/hoster/RapidgatorNet.py index 84c3b20d6..253109422 100644 --- a/module/plugins/hoster/RapidgatorNet.py +++ b/module/plugins/hoster/RapidgatorNet.py @@ -13,7 +13,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, s  class RapidgatorNet(SimpleHoster):      __name__    = "RapidgatorNet"      __type__    = "hoster" -    __version__ = "0.29" +    __version__ = "0.30"      __pattern__ = r'http://(?:www\.)?(rapidgator\.net|rg\.to)/file/\w+' @@ -128,7 +128,7 @@ class RapidgatorNet(SimpleHoster):                  break              else:                  captcha, captcha_key = self.getCaptcha() -                challenge, response  = captcha.challenge(captcha_key) +                response, challenge  = captcha.challenge(captcha_key)                  self.html = self.load(url, post={'DownloadCaptchaForm[captcha]': "",                                                   'adcopy_challenge'            : challenge, @@ -146,17 +146,17 @@ class RapidgatorNet(SimpleHoster):          m = re.search(self.ADSCAPTCHA_PATTERN, self.html)          if m:              captcha_key = m.group(1) -            captcha = AdsCaptcha(self) +            captcha     = AdsCaptcha(self)          else:              m = re.search(self.RECAPTCHA_PATTERN, self.html)              if m:                  captcha_key = m.group(1) -                captcha = ReCaptcha(self) +                captcha     = ReCaptcha(self)              else:                  m = re.search(self.SOLVEMEDIA_PATTERN, self.html)                  if m:                      captcha_key = m.group(1) -                    captcha = SolveMedia(self) +                    captcha     = SolveMedia(self)                  else:                      self.error(_("Captcha")) diff --git a/module/plugins/hoster/RapiduNet.py b/module/plugins/hoster/RapiduNet.py index 0c40d95b9..b6806e49b 100644 --- a/module/plugins/hoster/RapiduNet.py +++ b/module/plugins/hoster/RapiduNet.py @@ -13,7 +13,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo  class RapiduNet(SimpleHoster):      __name__    = "RapiduNet"      __type__    = "hoster" -    __version__ = "0.05" +    __version__ = "0.06"      __pattern__ = r'https?://(?:www\.)?rapidu\.net/(?P<ID>\d{10})' @@ -59,7 +59,7 @@ class RapiduNet(SimpleHoster):          recaptcha = ReCaptcha(self)          for _i in xrange(10): -            challenge, response = recaptcha.challenge(self.RECAPTCHA_KEY) +            response, challenge = recaptcha.challenge(self.RECAPTCHA_KEY)              jsvars = self.getJsonResponse("https://rapidu.net/ajax.php",                                            get={'a': "getCheckCaptcha"}, diff --git a/module/plugins/hoster/ShareonlineBiz.py b/module/plugins/hoster/ShareonlineBiz.py index 5918726f5..6f49711b8 100644 --- a/module/plugins/hoster/ShareonlineBiz.py +++ b/module/plugins/hoster/ShareonlineBiz.py @@ -14,7 +14,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo  class ShareonlineBiz(SimpleHoster):      __name__    = "ShareonlineBiz"      __type__    = "hoster" -    __version__ = "0.47" +    __version__ = "0.48"      __pattern__ = r'https?://(?:www\.)?(share-online\.biz|egoshare\.com)/(download\.php\?id=|dl/)(?P<ID>\w+)' @@ -69,7 +69,7 @@ class ShareonlineBiz(SimpleHoster):          recaptcha = ReCaptcha(self)          for _i in xrange(5): -            challenge, response = recaptcha.challenge(self.RECAPTCHA_KEY) +            response, challenge = recaptcha.challenge(self.RECAPTCHA_KEY)              m = re.search(r'var wait=(\d+);', self.html)              self.setWait(int(m.group(1)) if m else 30) diff --git a/module/plugins/hoster/TurbobitNet.py b/module/plugins/hoster/TurbobitNet.py index ccca76018..b2388e02d 100644 --- a/module/plugins/hoster/TurbobitNet.py +++ b/module/plugins/hoster/TurbobitNet.py @@ -17,7 +17,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo, t  class TurbobitNet(SimpleHoster):      __name__    = "TurbobitNet"      __type__    = "hoster" -    __version__ = "0.17" +    __version__ = "0.18"      __pattern__ = r'http://(?:www\.)?turbobit\.net/(?:download/free/)?(?P<ID>\w+)' @@ -76,7 +76,7 @@ class TurbobitNet(SimpleHoster):              if inputs['captcha_type'] == 'recaptcha':                  recaptcha = ReCaptcha(self) -                inputs['recaptcha_challenge_field'], inputs['recaptcha_response_field'] = recaptcha.challenge() +                inputs['recaptcha_response_field'], inputs['recaptcha_challenge_field'] = recaptcha.challenge()              else:                  m = re.search(self.CAPTCHA_PATTERN, self.html)                  if m is None: diff --git a/module/plugins/hoster/UpleaCom.py b/module/plugins/hoster/UpleaCom.py index 5c63c7e8b..f5e00662a 100644 --- a/module/plugins/hoster/UpleaCom.py +++ b/module/plugins/hoster/UpleaCom.py @@ -39,7 +39,7 @@ class UpleaCom(XFSHoster):      def handleFree(self, pyfile):          m = re.search(self.STEP_PATTERN, self.html)          if m is None: -            self.error("STEP_PATTERN not found") +            self.error(_("STEP_PATTERN not found"))          self.html = self.load(urljoin("http://uplea.com/", m.group(1))) diff --git a/module/plugins/hoster/UploadableCh.py b/module/plugins/hoster/UploadableCh.py index e28944ab9..be4cb5b06 100644 --- a/module/plugins/hoster/UploadableCh.py +++ b/module/plugins/hoster/UploadableCh.py @@ -11,7 +11,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo  class UploadableCh(SimpleHoster):      __name__    = "UploadableCh"      __type__    = "hoster" -    __version__ = "0.06" +    __version__ = "0.07"      __pattern__ = r'http://(?:www\.)?uploadable\.ch/file/(?P<ID>\w+)' @@ -46,7 +46,7 @@ class UploadableCh(SimpleHoster):          recaptcha = ReCaptcha(self) -        challenge, response = recaptcha.challenge(self.RECAPTCHA_KEY) +        response, challenge = recaptcha.challenge(self.RECAPTCHA_KEY)          # Submit the captcha solution          self.load("http://www.uploadable.ch/checkReCaptcha.php", diff --git a/module/plugins/hoster/UpstoreNet.py b/module/plugins/hoster/UpstoreNet.py index f287a2b51..db9fa53a1 100644 --- a/module/plugins/hoster/UpstoreNet.py +++ b/module/plugins/hoster/UpstoreNet.py @@ -9,7 +9,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo  class UpstoreNet(SimpleHoster):      __name__    = "UpstoreNet"      __type__    = "hoster" -    __version__ = "0.04" +    __version__ = "0.05"      __pattern__ = r'https?://(?:www\.)?upstore\.net/' @@ -52,7 +52,7 @@ class UpstoreNet(SimpleHoster):              self.wait(wait_time)              # then, handle the captcha -            challenge, response = recaptcha.challenge() +            response, challenge = recaptcha.challenge()              post_data.update({'recaptcha_challenge_field': challenge,                                'recaptcha_response_field' : response}) diff --git a/module/plugins/internal/SimpleCrypter.py b/module/plugins/internal/SimpleCrypter.py index 80504bf67..9df262deb 100644 --- a/module/plugins/internal/SimpleCrypter.py +++ b/module/plugins/internal/SimpleCrypter.py @@ -118,7 +118,7 @@ class SimpleCrypter(Crypter, SimpleHoster):              self.packages = [(self.info['name'], self.links, self.info['folder'])]          elif not self.urls and not self.packages:  #@TODO: Remove in 0.4.10 -            self.fail("No link grabbed") +            self.fail(_("No link grabbed"))      def checkNameSize(self, getinfo=True): diff --git a/module/plugins/internal/SimpleDereferer.py b/module/plugins/internal/SimpleDereferer.py index deef42620..35ac09b70 100644 --- a/module/plugins/internal/SimpleDereferer.py +++ b/module/plugins/internal/SimpleDereferer.py @@ -66,7 +66,7 @@ class SimpleDereferer(Crypter):              self.urls = [link.strip()]  #@TODO: Remove `.strip()` in 0.4.10          elif not self.urls and not self.packages:  #@TODO: Remove in 0.4.10 -            self.fail("No link grabbed") +            self.fail(_("No link grabbed"))      def prepare(self): diff --git a/module/plugins/internal/XFSHoster.py b/module/plugins/internal/XFSHoster.py index 75d4df275..1dd3075d8 100644 --- a/module/plugins/internal/XFSHoster.py +++ b/module/plugins/internal/XFSHoster.py @@ -15,7 +15,7 @@ from module.utils import html_unescape  class XFSHoster(SimpleHoster):      __name__    = "XFSHoster"      __type__    = "hoster" -    __version__ = "0.37" +    __version__ = "0.38"      __pattern__ = r'^unmatchable$' @@ -327,7 +327,7 @@ class XFSHoster(SimpleHoster):              self.logDebug("ReCaptcha key: %s" % captcha_key)          if captcha_key: -            inputs['recaptcha_challenge_field'], inputs['recaptcha_response_field'] = recaptcha.challenge(captcha_key) +            inputs['recaptcha_response_field'], inputs['recaptcha_challenge_field'] = recaptcha.challenge(captcha_key)              return 3          solvemedia = SolveMedia(self) @@ -339,7 +339,7 @@ class XFSHoster(SimpleHoster):              self.logDebug("SolveMedia key: %s" % captcha_key)          if captcha_key: -            inputs['adcopy_challenge'], inputs['adcopy_response'] = solvemedia.challenge(captcha_key) +            inputs['adcopy_response'], inputs['adcopy_challenge'] = solvemedia.challenge(captcha_key)              return 4          return 0 | 
