diff options
author | zoidberg10 <zoidberg@mujmail.cz> | 2012-10-09 01:10:18 +0200 |
---|---|---|
committer | zoidberg10 <zoidberg@mujmail.cz> | 2012-10-09 01:10:18 +0200 |
commit | b01b2b3d9559b8352ee65ee2eff30843e6071987 (patch) | |
tree | c6c177ac4bdc2c720c34b069be5ad6655e8a6525 /module | |
parent | filebeer workaround, rehost.to chunklimit, multihoster config (diff) | |
download | pyload-b01b2b3d9559b8352ee65ee2eff30843e6071987.tar.xz |
euroshare.eu premium
Diffstat (limited to 'module')
-rw-r--r-- | module/plugins/accounts/EuroshareEu.py | 55 | ||||
-rw-r--r-- | module/plugins/hoster/EuroshareEu.py | 22 |
2 files changed, 69 insertions, 8 deletions
diff --git a/module/plugins/accounts/EuroshareEu.py b/module/plugins/accounts/EuroshareEu.py new file mode 100644 index 000000000..42967d975 --- /dev/null +++ b/module/plugins/accounts/EuroshareEu.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- + +""" + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, + or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, see <http://www.gnu.org/licenses/>. + + @author: zoidberg +""" + +from module.plugins.Account import Account +from time import mktime, strptime +from string import replace +import re + +class EuroshareEu(Account): + __name__ = "EuroshareEu" + __version__ = "0.01" + __type__ = "account" + __description__ = """euroshare.eu account plugin""" + __author_name__ = ("zoidberg") + __author_mail__ = ("zoidberg@mujmail.cz") + + def loadAccountInfo(self, user, req): + self.relogin(user) + html = req.load("http://euroshare.eu/customer-zone/settings/") + + found = re.search('id="input_expire_date" value="(\d+\.\d+\.\d+ \d+:\d+)"', html) + if found is None: + premium, validuntil = False, -1 + else: + premium = True + validuntil = mktime(strptime(found.group(1), "%d.%m.%Y %H:%M")) + + return {"validuntil": validuntil, "trafficleft": -1, "premium": premium} + + def login(self, user, data, req): + + html = req.load('http://euroshare.eu/customer-zone/login/', post={ + "trvale": "1", + "login": user, + "password": data["password"] + }, decode=True) + + if u">Nesprávne prihlasovacie meno alebo heslo" in html: + self.wrongPassword()
\ No newline at end of file diff --git a/module/plugins/hoster/EuroshareEu.py b/module/plugins/hoster/EuroshareEu.py index 2c356f02a..79df56ac4 100644 --- a/module/plugins/hoster/EuroshareEu.py +++ b/module/plugins/hoster/EuroshareEu.py @@ -23,7 +23,7 @@ class EuroshareEu(SimpleHoster): __name__ = "EuroshareEu" __type__ = "hoster" __pattern__ = r"http://(\w*\.)?euroshare.(eu|sk|cz|hu|pl)/file/.*" - __version__ = "0.21" + __version__ = "0.22" __description__ = """Euroshare.eu""" __author_name__ = ("zoidberg") @@ -31,11 +31,16 @@ class EuroshareEu(SimpleHoster): FILE_OFFLINE_PATTERN = ur'<h2>S.bor sa nena.iel</h2>|Požadovaná stránka neexistuje!' FREE_URL_PATTERN = r'<a href="(/file/\d+/[^/]*/download/)"><div class="downloadButton"' - ERR_PARDL_PATTERN = r'<h2>Prebieha s.ahovanie</h2>' + ERR_PARDL_PATTERN = r'<h2>Prebieha s.ahovanie</h2>|<p>Naraz je z jednej IP adresy mo.n. s.ahova. iba jeden s.bor' + + FILE_URL_REPLACEMENTS = [(r"(http://[^/]*\.)(sk|cz|hu|pl)/", r"\1eu/")] + + def handlePremium(self): + self.download(self.pyfile.url.rstrip('/') + "/download/") def handleFree(self): if re.search(self.ERR_PARDL_PATTERN, self.html) is not None: - self.waitForFreeSlot() + self.longWait(300, 12) found = re.search(self.FREE_URL_PATTERN, self.html) if found is None: @@ -43,8 +48,9 @@ class EuroshareEu(SimpleHoster): parsed_url = "http://euroshare.eu%s" % found.group(1) self.logDebug("URL", parsed_url) self.download(parsed_url, disposition=True) - - def waitForFreeSlot(self): - self.setWait(300, True) - self.wait() - self.retry()
\ No newline at end of file + + check = self.checkDownload({"multi_dl": re.compile(self.ERR_PARDL_PATTERN)}) + if check == "multi_dl": + self.longWait(300, 12) + +getInfo = create_getInfo(EuroshareEu)
\ No newline at end of file |