diff options
| -rw-r--r-- | module/plugins/hoster/LoadTo.py | 35 | 
1 files changed, 14 insertions, 21 deletions
| diff --git a/module/plugins/hoster/LoadTo.py b/module/plugins/hoster/LoadTo.py index 5cad8b580..5daf1b8e3 100644 --- a/module/plugins/hoster/LoadTo.py +++ b/module/plugins/hoster/LoadTo.py @@ -20,25 +20,25 @@  import re +from module.plugins.internal.CaptchaService import SolveMedia  from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo -from module.plugins.internal.CaptchaService import ReCaptcha  class LoadTo(SimpleHoster):      __name__ = "LoadTo"      __type__ = "hoster"      __pattern__ = r'http://(?:www\.)?load\.to/\w+' -    __version__ = "0.13" +    __version__ = "0.14"      __description__ = """Load.to hoster plugin"""      __author_name__ = ("halfman", "stickell")      __author_mail__ = ("Pulpan3@gmail.com", "l.stickell@yahoo.it") -    FILE_INFO_PATTERN = r'<a [^>]+>(?P<N>.+)</a></h3>\s*Size: (?P<S>\d+) (?P<U>[kKmMgG]?i?[bB])' +    FILE_INFO_PATTERN = r'<head><title>(?P<N>.+) \/\/ Load.to</title>' +    FILE_SIZE_PATTERN = r'<a [^>]+>(?P<Z>.+)</a></h3>\s*Size: (?P<S>.*) (?P<U>[kKmMgG]?i?[bB])'      URL_PATTERN = r'<form method="post" action="(.+?)"'      OFFLINE_PATTERN = r'Can\'t find file. Please check URL.'      WAIT_PATTERN = r'type="submit" value="Download \((\d+)\)"' -    RECAPTCHA_PATTERN = r'http://www.google.com/recaptcha/api/challenge' -    RECAPTCHA_KEY = "6Lc34eISAAAAAKNbPVyxBgNriTjPRmF-FA1oxApG" +    SOLVEMEDIA_PATTERN = r'http://api\.solvemedia\.com/papi/challenge\.noscript\?k=([^"]+)'      def setup(self):          self.multiDL = True @@ -55,7 +55,8 @@ class LoadTo(SimpleHoster):          # Search for Download URL          m = re.search(self.URL_PATTERN, self.html)          if not m: -            self.parseError('Unable to detect download URL') +            self.parseError("Unable to detect download URL") +          download_url = m.group(1)          # Set Timer - may be obsolete @@ -63,23 +64,15 @@ class LoadTo(SimpleHoster):          if m:              self.wait(m.group(1)) -        # Check if reCaptcha is present -        m = re.search(self.RECAPTCHA_PATTERN, self.html) -        if not m:  # No captcha found +        # Load.to is using solvemedia captchas since ~july 2014: +        found = re.search(self.SOLVEMEDIA_PATTERN, self.html) +        if not found:              self.download(download_url)          else: -            recaptcha = ReCaptcha(self) -            for _ in xrange(5): -                challenge, response = recaptcha.challenge(self.RECAPTCHA_KEY) -                if not response == '0': -                    break -            else: -                self.fail("No valid captcha solution received") - -            self.download(download_url, -                          post={'recaptcha_challenge_field': challenge, 'recaptcha_response_field': response}) - -            # Verifiy reCaptcha by checking content of file for html 404-error +            captcha_key = found.group(1) +            solvemedia = SolveMedia(self) +            captcha_challenge, captcha_response = solvemedia.challenge(captcha_key) +            self.download(download_url,post={"adcopy_challenge": captcha_challenge, "adcopy_response": captcha_response})              check = self.checkDownload({"404": re.compile("\A<h1>404 Not Found</h1>")})              if check == "404":                  self.logWarning("The captcha you entered was incorrect. Please try again.") | 
