summaryrefslogtreecommitdiffstats
path: root/module/plugins/hoster/FilejungleCom.py
diff options
context:
space:
mode:
authorGravatar zoidberg10 <zoidberg@mujmail.cz> 2012-01-31 21:27:45 +0100
committerGravatar zoidberg10 <zoidberg@mujmail.cz> 2012-01-31 21:27:45 +0100
commit536669858a949c5b34b902b7e05f336e33b2df28 (patch)
treedef74582d46e34ac9292153d26bb088a54a346d1 /module/plugins/hoster/FilejungleCom.py
parentMerge heads. (diff)
downloadpyload-536669858a949c5b34b902b7e05f336e33b2df28.tar.xz
re-enable & refactor fileserve/filejungle/uploadstation
Diffstat (limited to 'module/plugins/hoster/FilejungleCom.py')
-rw-r--r--module/plugins/hoster/FilejungleCom.py75
1 files changed, 15 insertions, 60 deletions
diff --git a/module/plugins/hoster/FilejungleCom.py b/module/plugins/hoster/FilejungleCom.py
index c49cc8506..c75ac1a98 100644
--- a/module/plugins/hoster/FilejungleCom.py
+++ b/module/plugins/hoster/FilejungleCom.py
@@ -17,69 +17,24 @@
"""
import re
-from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
-from module.network.RequestFactory import getURL
-from module.plugins.ReCaptcha import ReCaptcha
+from module.plugins.hoster.FileserveCom import FileserveCom, checkFile
-class FilejungleCom(SimpleHoster):
+# shares code with UploadstationCom
+
+class FilejungleCom(FileserveCom):
__name__ = "FilejungleCom"
__type__ = "hoster"
- __pattern__ = r"http://(?:www\.)?filejungle\.com/f/([^/]+).*"
- __version__ = "0.25"
+ __pattern__ = r"http://(?:www\.)?filejungle\.com/f/(?P<id>[^/]+).*"
+ __version__ = "0.5"
__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>)'
- 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):
- 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)
+
+ URLS = ['http://www.filejungle.com/f/', 'http://www.filejungle.com/check_links.php', 'http://www.filejungle.com/checkReCaptcha.php']
+ LINKCHECK_TR = r'<li>\s*(<div class="col1">.*?)</li>'
+ LINKCHECK_TD = r'<div class="(?:col )?col\d">(?:<[^>]*>|&nbsp;)*([^<]*)'
+
+ LONG_WAIT_PATTERN = r'<h1>Please wait for (\d+) (\w+)\s*to download the next file\.</h1>'
+
+def getInfo(urls):
+ yield checkFile(FilejungleCom, urls) \ No newline at end of file