summaryrefslogtreecommitdiffstats
path: root/module/plugins/hoster
diff options
context:
space:
mode:
Diffstat (limited to 'module/plugins/hoster')
-rw-r--r--module/plugins/hoster/HotfileCom.py29
-rw-r--r--module/plugins/hoster/ShareonlineBiz.py13
-rw-r--r--module/plugins/hoster/ZippyshareCom.py9
3 files changed, 24 insertions, 27 deletions
diff --git a/module/plugins/hoster/HotfileCom.py b/module/plugins/hoster/HotfileCom.py
index 1447e7c9e..bf4250767 100644
--- a/module/plugins/hoster/HotfileCom.py
+++ b/module/plugins/hoster/HotfileCom.py
@@ -32,24 +32,26 @@ class HotfileCom(Hoster):
__name__ = "HotfileCom"
__type__ = "hoster"
__pattern__ = r"http://(www.)?hotfile\.com/dl/\d+/[0-9a-zA-Z]+/"
- __version__ = "0.32"
+ __version__ = "0.34"
__description__ = """Hotfile.com Download Hoster"""
- __author_name__ = ("sitacuisses","spoob","mkaay")
- __author_mail__ = ("sitacuisses@yhoo.de","spoob@pyload.org","mkaay@mkaay.de")
+ __author_name__ = ("sitacuisses","spoob","mkaay","JoKoT3")
+ __author_mail__ = ("sitacuisses@yhoo.de","spoob@pyload.org","mkaay@mkaay.de","jokot3@gmail.com")
FILE_OFFLINE_PATTERN = r'File is removed'
def setup(self):
self.html = [None, None]
self.wantReconnect = False
- self.multiDL = False
self.htmlwithlink = None
self.url = None
- if self.account:
+ if self.premium:
self.multiDL = True
self.resumeDownload = True
self.chunkLimit = -1
+ else:
+ self.multiDL = False
+ self.chunkLimit = 1
def apiCall(self, method, post, login=False):
if not self.account and login:
@@ -73,7 +75,7 @@ class HotfileCom(Hoster):
pyfile.name = self.apiData["name"]
- if not self.account:
+ if not self.premium:
self.downloadHTML()
if self.FILE_OFFLINE_PATTERN in self.html[0]:
@@ -127,14 +129,9 @@ class HotfileCom(Hoster):
free_limit_pattern = re.compile(r"timerend=d\.getTime\(\)\+(\d+);")
matches = free_limit_pattern.findall(self.html[0])
if matches:
- for match in matches:
- if int(match) in (60000,15000,0):
- continue
- else:
- waittime = int(match)/1000 + 65
- if waittime > 300:
- self.wantReconnect = True
- return waittime
- return 65
+ wait_time = (sum([int(match) for match in matches])/1000) or 60
+ if wait_time > 300:
+ self.wantReconnect = True
+ return wait_time + 1
else:
- self.fail("Don't know how long to wait. Cannot proceed.")
+ self.fail("Don't know how long to wait. Cannot proceed.") \ No newline at end of file
diff --git a/module/plugins/hoster/ShareonlineBiz.py b/module/plugins/hoster/ShareonlineBiz.py
index 70c1efe1d..6c188fc96 100644
--- a/module/plugins/hoster/ShareonlineBiz.py
+++ b/module/plugins/hoster/ShareonlineBiz.py
@@ -43,7 +43,7 @@ class ShareonlineBiz(Hoster):
__name__ = "ShareonlineBiz"
__type__ = "hoster"
__pattern__ = r"http://[\w\.]*?(share\-online\.biz|egoshare\.com)/(download.php\?id\=|dl/)[\w]+"
- __version__ = "0.25"
+ __version__ = "0.26"
__description__ = """Shareonline.biz Download Hoster"""
__author_name__ = ("spoob", "mkaay", "zoidberg")
__author_mail__ = ("spoob@pyload.org", "mkaay@mkaay.de", "zoidberg@mujmail.cz")
@@ -56,7 +56,7 @@ class ShareonlineBiz(Hoster):
self.pyfile.url = "http://www.share-online.biz/dl/" + self.file_id
self.resumeDownload = self.multiDL = self.premium
- self.chunkLimit = 1
+ #self.chunkLimit = 1
def process(self, pyfile):
if self.premium:
@@ -66,13 +66,11 @@ class ShareonlineBiz(Hoster):
self.handleFree()
check = self.checkDownload({"invalid" : re.compile("<strong>(This download ticket is.*?)</strong>"),
- "error" : "Es ist ein unbekannter Fehler aufgetreten"})
- if check == "invalid":
+ "error" : re.compile("(Es ist ein unbekannter Fehler aufgetreten|An unknown error has occurred)")})
+ if check in ("invalid", "error"):
self.logError(self.lastCheck.group(1))
- if self.premium: self.account.relogin()
+ if self.premium: self.account.getAccountInfo(self.user, force = True)
self.retry(reason=_("Invalid download ticket"))
- elif check == "error":
- self.fail(reason=_("ShareOnline internal problems"))
def downloadAPIData(self):
api_url_base = "http://api.share-online.biz/linkcheck.php?md5=1"
@@ -129,6 +127,7 @@ class ShareonlineBiz(Hoster):
self.download(download_url)
def handleAPIPremium(self): #should be working better
+ self.account.getAccountInfo(self.user)
src = self.load("http://api.share-online.biz/account.php?username=%s&password=%s&act=download&lid=%s" % (self.user, self.account.accounts[self.user]["password"], self.file_id), post={})
self.api_data = dlinfo = {}
for line in src.splitlines():
diff --git a/module/plugins/hoster/ZippyshareCom.py b/module/plugins/hoster/ZippyshareCom.py
index a0c70d7bb..0dde85e2c 100644
--- a/module/plugins/hoster/ZippyshareCom.py
+++ b/module/plugins/hoster/ZippyshareCom.py
@@ -10,7 +10,7 @@ class ZippyshareCom(SimpleHoster):
__name__ = "ZippyshareCom"
__type__ = "hoster"
__pattern__ = r"(?P<HOST>http://www\d{0,2}\.zippyshare.com)/v(?:/|iew.jsp.*key=)(?P<KEY>\d+)"
- __version__ = "0.32"
+ __version__ = "0.33"
__description__ = """Zippyshare.com Download Hoster"""
__author_name__ = ("spoob", "zoidberg")
__author_mail__ = ("spoob@pyload.org", "zoidberg@mujmail.cz")
@@ -19,7 +19,7 @@ class ZippyshareCom(SimpleHoster):
FILE_SIZE_PATTERN = r'>Size:</font>\s*<font [^>]*>(?P<S>[0-9.,]+) (?P<U>[kKMG]+)i?B</font><br />'
FILE_OFFLINE_PATTERN = r'>File does not exist on this server</div>'
- DOWNLOAD_URL_PATTERN = r"document\.getElementById\('dlbutton'\).href = ([^;]+);"
+ DOWNLOAD_URL_PATTERN = r">([^<>]*)document\.getElementById\('dlbutton'\).href = ([^;]+);"
SEED_PATTERN = r'swfobject.embedSWF\("([^"]+)".*?seed: (\d+)'
CAPTCHA_KEY_PATTERN = r'Recaptcha.create\("([^"]+)"'
CAPTCHA_SHORTENCODE_PATTERN = r"shortencode: '([^']+)'"
@@ -57,10 +57,11 @@ class ZippyshareCom(SimpleHoster):
"""
url = multiply = modulo = None
- found = re.search(self.DOWNLOAD_URL_PATTERN, self.html)
+ found = re.search(self.DOWNLOAD_URL_PATTERN, self.html, re.S)
if found:
#Method #1: JS eval
- url = self.js.eval(found.group(1))
+ self.logDebug("JS", found.groups())
+ url = self.js.eval("%s%s" % (found.group(1), found.group(2)))
else:
#Method #2: SWF eval
seed_search = re.search(self.SEED_PATTERN, self.html)