summaryrefslogtreecommitdiffstats
path: root/module/plugins/hoster/FreakshareCom.py
diff options
context:
space:
mode:
authorGravatar synweap15 <shamdog+github@gmail.com> 2014-12-30 20:21:23 +0100
committerGravatar synweap15 <shamdog+github@gmail.com> 2014-12-30 20:21:23 +0100
commitac9ba34bd5e629ddfbe67dec88ff2e0653e80356 (patch)
treef77bc281bd083145b19e82bf0e5ff34f5cd6f01a /module/plugins/hoster/FreakshareCom.py
parent[Oboom] new hoster and account (diff)
parentUpdate some MultiHoster __pattern__ (diff)
downloadpyload-ac9ba34bd5e629ddfbe67dec88ff2e0653e80356.tar.xz
Merge pull request #1 from pyload/stable
Merge
Diffstat (limited to 'module/plugins/hoster/FreakshareCom.py')
-rw-r--r--module/plugins/hoster/FreakshareCom.py64
1 files changed, 36 insertions, 28 deletions
diff --git a/module/plugins/hoster/FreakshareCom.py b/module/plugins/hoster/FreakshareCom.py
index ad9abeb96..2238f07ef 100644
--- a/module/plugins/hoster/FreakshareCom.py
+++ b/module/plugins/hoster/FreakshareCom.py
@@ -1,23 +1,32 @@
# -*- coding: utf-8 -*-
import re
+
from module.plugins.Hoster import Hoster
from module.plugins.internal.CaptchaService import ReCaptcha
+from module.plugins.internal.SimpleHoster import secondsToMidnight
class FreakshareCom(Hoster):
- __name__ = "FreakshareCom"
- __type__ = "hoster"
+ __name__ = "FreakshareCom"
+ __type__ = "hoster"
+ __version__ = "0.40"
+
__pattern__ = r'http://(?:www\.)?freakshare\.(net|com)/files/\S*?/'
- __version__ = "0.38"
+
__description__ = """Freakshare.com hoster plugin"""
- __author_name__ = ("sitacuisses", "spoob", "mkaay", "Toilal")
- __author_mail__ = ("sitacuisses@yahoo.de", "spoob@pyload.org", "mkaay@mkaay.de", "toilal.dev@gmail.com")
+ __license__ = "GPLv3"
+ __authors__ = [("sitacuisses", "sitacuisses@yahoo.de"),
+ ("spoob", "spoob@pyload.org"),
+ ("mkaay", "mkaay@mkaay.de"),
+ ("Toilal", "toilal.dev@gmail.com")]
+
def setup(self):
self.multiDL = False
self.req_opts = []
+
def process(self, pyfile):
self.pyfile = pyfile
@@ -41,24 +50,23 @@ class FreakshareCom(Hoster):
"downloadserver": "No Downloadserver. Please try again later!"})
if check == "bad":
- self.fail("Bad Try.")
+ self.fail(_("Bad Try"))
elif check == "paralell":
self.setWait(300, True)
self.wait()
self.retry()
elif check == "empty":
- self.fail("File not downloadable")
+ self.fail(_("File not downloadable"))
elif check == "wrong_captcha":
self.invalidCaptcha()
self.retry()
elif check == "downloadserver":
- self.retry(5, 15 * 60, "No Download server")
+ self.retry(5, 15 * 60, _("No Download server"))
+
def prepare(self):
pyfile = self.pyfile
- self.wantReconnect = False
-
self.download_html()
if not self.file_exists():
@@ -73,14 +81,16 @@ class FreakshareCom(Hoster):
return True
+
def download_html(self):
self.load("http://freakshare.com/index.php", {"language": "EN"}) # Set english language in server session
self.html = self.load(self.pyfile.url)
+
def get_file_url(self):
""" returns the absolute downloadable filepath
"""
- if self.html is None:
+ if not self.html:
self.download_html()
if not self.wantReconnect:
self.req_opts = self.get_download_options() # get the Post options for the Request
@@ -89,8 +99,9 @@ class FreakshareCom(Hoster):
else:
self.offline()
+
def get_file_name(self):
- if self.html is None:
+ if not self.html:
self.download_html()
if not self.wantReconnect:
file_name = re.search(r"<h1\sclass=\"box_heading\"\sstyle=\"text-align:center;\">([^ ]+)", self.html)
@@ -102,9 +113,10 @@ class FreakshareCom(Hoster):
else:
return self.pyfile.url
+
def get_file_size(self):
size = 0
- if self.html is None:
+ if not self.html:
self.download_html()
if not self.wantReconnect:
file_size_check = re.search(
@@ -116,30 +128,33 @@ class FreakshareCom(Hoster):
return size
+
def get_waiting_time(self):
- if self.html is None:
+ if not self.html:
self.download_html()
if "Your Traffic is used up for today" in self.html:
self.wantReconnect = True
- return 24 * 60 * 60
+ return secondsToMidnight(gmt=2)
- timestring = re.search('\s*var\s(?:downloadWait|time)\s=\s(\d*)[.\d]*;', self.html)
+ timestring = re.search('\s*var\s(?:downloadWait|time)\s=\s(\d*)[\d.]*;', self.html)
if timestring:
- return int(timestring.group(1)) + 1 # add 1 sec as tenths of seconds are cut off
+ return int(timestring.group(1))
else:
return 60
+
def file_exists(self):
""" returns True or False
"""
- if self.html is None:
+ if not self.html:
self.download_html()
if re.search(r"This file does not exist!", self.html) is not None:
return False
else:
return True
+
def get_download_options(self):
re_envelope = re.search(r".*?value=\"Free\sDownload\".*?\n*?(.*?<.*?>\n*)*?\n*\s*?</form>",
self.html).group(0) # get the whole request
@@ -148,21 +163,14 @@ class FreakshareCom(Hoster):
herewego = self.load(self.pyfile.url, None, request_options) # the actual download-Page
- # comment this in, when it doesnt work
- # with open("DUMP__FS_.HTML", "w") as fp:
- # fp.write(herewego)
-
to_sort = re.findall(r"<input\stype=\".*?\"\svalue=\"(\S*?)\".*?name=\"(\S*?)\"\s.*?\/>", herewego)
request_options = dict((n, v) for (v, n) in to_sort)
- # comment this in, when it doesnt work as well
- #print "\n\n%s\n\n" % ";".join(["%s=%s" % x for x in to_sort])
-
- challenge = re.search(r"http://api\.recaptcha\.net/challenge\?k=([0-9A-Za-z]+)", herewego)
+ challenge = re.search(r"http://api\.recaptcha\.net/challenge\?k=(\w+)", herewego)
if challenge:
re_captcha = ReCaptcha(self)
- (request_options["recaptcha_challenge_field"],
- request_options["recaptcha_response_field"]) = re_captcha.challenge(challenge.group(1))
+ (request_options['recaptcha_challenge_field'],
+ request_options['recaptcha_response_field']) = re_captcha.challenge(challenge.group(1))
return request_options