diff options
| author | 2012-01-29 12:12:11 +0100 | |
|---|---|---|
| committer | 2012-01-29 12:12:11 +0100 | |
| commit | 591a2138fe395e5d7306d240bfbd00ae0a2d6575 (patch) | |
| tree | deee823d9c4345661a7f1ac1ae08603ec0ca7deb /module/plugins | |
| parent | Update FileJungle for non existing files. (diff) | |
| download | pyload-591a2138fe395e5d7306d240bfbd00ae0a2d6575.tar.xz | |
re-enable filejungle
Diffstat (limited to 'module/plugins')
| -rw-r--r-- | module/plugins/hoster/FilejungleCom.py | 54 | 
1 files changed, 48 insertions, 6 deletions
| diff --git a/module/plugins/hoster/FilejungleCom.py b/module/plugins/hoster/FilejungleCom.py index dc36fa1d9..b880086a6 100644 --- a/module/plugins/hoster/FilejungleCom.py +++ b/module/plugins/hoster/FilejungleCom.py @@ -21,23 +21,65 @@ from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo  from module.network.RequestFactory import getURL  from module.plugins.ReCaptcha import ReCaptcha -def getInfo(urls): -    yield [(url, 0, 1, url) for url in urls] -  class FilejungleCom(SimpleHoster):      __name__ = "FilejungleCom"      __type__ = "hoster"      __pattern__ = r"http://(?:www\.)?filejungle\.com/f/([^/]+).*" -    __version__ = "0.24" +    __version__ = "0.23"      __description__ = """Filejungle.com plugin - free only"""      __author_name__ = ("zoidberg")      __author_mail__ = ("zoidberg@mujmail.cz")      FILE_INFO_PATTERN = r'<div id="file_name">(?P<N>[^<]+) <span class="filename_normal">\((?P<S>[0-9.]+) (?P<U>[kKMG])i?B\)</span></div>' -    FILE_OFFLINE_PATTERN = r'(This file is no longer available.</h1>|class="error_msg_title"> Invalid or Deleted File. </div>)' +    FILE_OFFLINE_PATTERN = r'class="error_msg_title"> Invalid or Deleted File. </div>'      RECAPTCHA_KEY_PATTERN = r"var reCAPTCHA_publickey='([^']+)'"      WAIT_TIME_PATTERN = r'<h1>Please wait for (\d+) seconds to download the next file\.</h1>'      def handleFree(self):        -        self.fail("Hoster not longer available") +        file_id = re.search(self.__pattern__, self.pyfile.url).group(1) +        url = "http://www.filejungle.com/f/%s" % file_id  +        self.logDebug("File ID: %s" % file_id)         +            +        # Get captcha +        found = re.search(self.RECAPTCHA_KEY_PATTERN, self.html)  +        if not found: self.fail("Captcha key not found") +        captcha_key = found.group(1) +         +        json_response = self.load(self.pyfile.url, post = {"checkDownload" :	"check"}, decode = True) +        self.logDebug(json_response)      +        if r'"success":"showCaptcha"' in json_response: +            recaptcha = ReCaptcha(self) +            for i in range(5): +                captcha_challenge, captcha_response = recaptcha.challenge(captcha_key) +                self.logDebug("RECAPTCHA: %s : %s : %s" % (captcha_key, captcha_challenge, captcha_response)) + +                json_response = self.load("http://www.filejungle.com/checkReCaptcha.php", post = { +                    "recaptcha_challenge_field" : captcha_challenge, 	 +                    "recaptcha_response_field" : captcha_response,	 +                    "recaptcha_shortencode_field" :	file_id  +                    }, decode = True) +                self.logDebug(json_response)   +                if r'{"success":1}' in json_response: +                    self.correctCaptcha()  +                    break +                else: +                    self.invalidCaptcha() +            else: self.fail("Invalid captcha") +        elif r'"fail":"timeLimit"' in json_response: +            self.html = self.load(url, post = {"checkDownload" :	"showError", "errorType" :	"timeLimit"}) +            found = re.search(self.WAIT_TIME_PATTERN, self.html) +            self.retry(5, int(found.group(1)) if found else 1200, "Time limit reached") +        else: +            self.fail("Unknown server response") +       +        json_response = self.load(url, post = {"downloadLink" :	"wait"}, decode = True) +        self.logDebug(json_response[:30])    +        found = re.search(r'"waitTime":(\d+)', json_response) +        if not found: self.fail("Cannot get wait time") +        self.setWait(int(found.group(1))) +        self.wait() +         +        response = self.load(url, post = {"downloadLink" :	"show"})      +        self.download(url, post = {"download" :	"normal"}) +getInfo = create_getInfo(FilejungleCom)
\ No newline at end of file | 
