diff options
author | 2012-03-11 18:52:44 +0100 | |
---|---|---|
committer | 2012-03-11 18:52:44 +0100 | |
commit | 7cfd8dd192227c8f37861827a95852a4942694ef (patch) | |
tree | 80cafb9840e55ecaa88fca8981e08bf47c12ee84 /module/plugins/hoster | |
parent | multihoster config (diff) | |
download | pyload-7cfd8dd192227c8f37861827a95852a4942694ef.tar.xz |
hotfile patch by JoKoT3 - close #556, fix zippyshare, bitshare login
Diffstat (limited to 'module/plugins/hoster')
-rw-r--r-- | module/plugins/hoster/HotfileCom.py | 29 | ||||
-rw-r--r-- | module/plugins/hoster/ShareonlineBiz.py | 13 | ||||
-rw-r--r-- | module/plugins/hoster/ZippyshareCom.py | 9 |
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) |