The file could not be found\. Please check the download link'''
if re.search(pattern, self.html):
self.offline()
pattern = r'''(.*?)
'''
title = re.search(pattern, self.html).group(1)
self.pyfile.name = unicodedata.normalize('NFKD', title).encode('ascii','ignore')
self.handleFree()
def handleFree(self):
self.html = self.load(self.pyfile.url)
# Not needed yet
#jsPage = re.search(r"\"(/landing/.*?/download_captcha\.js)\"", self.html)
#jsPage = self.load("http://uploadstation.com" + jsPage.group(1))
self.action = self.load(self.pyfile.url, post={"checkDownload" : "check"})
if "success\":\"showCaptcha\"" in self.action:
self.handleErrors()
if r'' in self.html:
# we got a captcha
id = re.search(r"var reCAPTCHA_publickey='(.*?)';", self.html).group(1)
recaptcha = ReCaptcha(self)
challenge, code = recaptcha.challenge(id)
self.html = self.load(r'http://www.uploadstation.com/checkReCaptcha.php', post={'recaptcha_challenge_field':challenge,
'recaptcha_response_field':code, 'recaptcha_shortencode_field': self.file_id})
if r'incorrect-captcha-sol' in self.html:
self.invalidCaptcha()
self.retry()
wait = self.load(self.pyfile.url, post={"downloadLink":"wait"})
wait = re.search(r".*?(\d+).*?", wait)
if wait:
wait = wait.group(1)
if wait == "404":
self.log.debug("No wait time returned")
self.fail("No wait time returned")
else:
self.setWait(int(wait))
self.wait()
# show download link
self.load(self.pyfile.url, post={"downloadLink":"show"})
# this may either download our file or forward us to an error page
dl = self.download(self.pyfile.url, post={"download":"normal"})
self.handleDownload()
def handleErrors(self):
if "timeLimit" in self.action:
html = self.load(self.pyfile.url, post={"checkDownload" : "showError", "errorType" : "timeLimit"})
wait = re.search(r"You need to wait (\d+) seconds to start another download", html)
if wait:
wait = int(wait.group(1))
else:
wait = 720
self.setWait(wait, True)
self.wait()
self.retry()
def handleDownload(self):
check = self.checkDownload({"expired": "Your download link has expired",
"wait": re.compile(r'You need to wait (\d+) seconds to start another download')})
if check == "expired":
self.retry()
elif check == "wait":
wait_time = 720
if self.lastCheck is not None:
wait_time = int(self.lastCheck.group(1))
self.setWait(wait_time+3)
self.log.debug("%s: You need to wait %d seconds for another download." % (self.__name__, wait_time))
self.wantReconnect = True
self.wait()
self.retry()