diff options
author | Nitzo <nitzo2001@yahoo.com> | 2016-07-20 00:45:05 +0200 |
---|---|---|
committer | Nitzo <nitzo2001@yahoo.com> | 2016-07-20 00:45:05 +0200 |
commit | 09ec41fd28a680fcb1be30f0d3aba043b8fe50b8 (patch) | |
tree | acafdea742df0446e55ded3a0f1c6048140af2c1 /module | |
parent | [RelinkUs] fix #2548 (diff) | |
download | pyload-09ec41fd28a680fcb1be30f0d3aba043b8fe50b8.tar.xz |
[EuroshareEu] fix #2551
Diffstat (limited to 'module')
-rw-r--r-- | module/plugins/accounts/EuroshareEu.py | 31 | ||||
-rw-r--r-- | module/plugins/hoster/EuroshareEu.py | 40 |
2 files changed, 26 insertions, 45 deletions
diff --git a/module/plugins/accounts/EuroshareEu.py b/module/plugins/accounts/EuroshareEu.py index 5e6debe8e..4975d3fe1 100644 --- a/module/plugins/accounts/EuroshareEu.py +++ b/module/plugins/accounts/EuroshareEu.py @@ -2,16 +2,15 @@ import re import time -import urlparse from module.plugins.internal.Account import Account -from module.plugins.internal.misc import parse_html_form +from module.plugins.internal.misc import json class EuroshareEu(Account): __name__ = "EuroshareEu" __type__ = "account" - __version__ = "0.10" + __version__ = "0.11" __status__ = "testing" __description__ = """Euroshare.eu account plugin""" @@ -24,34 +23,28 @@ class EuroshareEu(Account): html = self.load("http://euroshare.eu/", get={'lang': "en"}) - m = re.search(r'<span title="Premium do: (\d+\.\d+\.\d+ \d+:\d+:\d+)"', html) + m = re.search(r'<span class="btn btn--nav green darken-3">Premium account until: (\d+/\d+/\d+ \d+:\d+:\d+)<', html) if m is None: premium = False validuntil = -1 else: premium = True - validuntil = time.mktime(time.strptime(m.group(1), "%d.%m.%Y %H:%M:%S")) + validuntil = time.mktime(time.strptime(m.group(1), "%d/%m/%Y %H:%M:%S")) return {'validuntil': validuntil, 'trafficleft': -1, 'premium': premium} def signin(self, user, password, data): - login_url = "http://euroshare.eu/user/login/" - html = self.load(login_url, - get={'lang' : "en"}) + html = self.load("http://euroshare.eu/login.html") - if r'<li class="logout">' in html: + if r'href="http://euroshare.eu/logout.html"' in html: self.skip_login() - action, inputs = parse_html_form('id="frm-prihlaseni"', html) - if not inputs: - self.fail_login(_("Login form not found")) + json_data = json.loads(self.load("http://euroshare.eu/ajax/_account_login.ajax.php", + post={'username': user, + 'password': password, + 'remember': "false", + 'backlink': ""})) - inputs['username'] = user - inputs['password'] = password - - html = self.load(urlparse.urljoin(login_url, action), - post=inputs) - - if r'<li class="logout">' not in html: + if json_data.get("login_status") != "success": self.fail_login() diff --git a/module/plugins/hoster/EuroshareEu.py b/module/plugins/hoster/EuroshareEu.py index 3ef8f89bd..a3143ce1f 100644 --- a/module/plugins/hoster/EuroshareEu.py +++ b/module/plugins/hoster/EuroshareEu.py @@ -8,7 +8,7 @@ from module.plugins.internal.SimpleHoster import SimpleHoster class EuroshareEu(SimpleHoster): __name__ = "EuroshareEu" __type__ = "hoster" - __version__ = "0.37" + __version__ = "0.38" __status__ = "testing" __pattern__ = r'http://(?:www\.)?euroshare\.(eu|sk|cz|hu|pl)/file/.+' @@ -20,15 +20,17 @@ class EuroshareEu(SimpleHoster): __description__ = """Euroshare.eu hoster plugin""" __license__ = "GPLv3" - __authors__ = [("zoidberg", "zoidberg@mujmail.cz")] + __authors__ = [("zoidberg", "zoidberg@mujmail.cz" ), + ("GammaC0de", "nitzo2001[AT]yahoo[DOT]com")] - NAME_PATTERN = r'<h1 class="nazev-souboru">(?P<N>.+?)</h1>' - SIZE_PATTERN = r'<p class="posledni vpravo">.*\| (?P<S>.+?) (?P<U>.+?)</p>' + NAME_PATTERN = r'<div class="main-panel__title">(?P<N>.+?)</div>' + SIZE_PATTERN = r'File size: (?P<S>[\d.,]+) (?P<U>[\w^_]+)' - OFFLINE_PATTERN = ur'<h2>S.bor sa nena.iel</h2>|Požadovaná stránka neexistuje!' + OFFLINE_PATTERN = ur'<h2>S.bor sa nena.iel</h2>|<div class="container">FILE NOT FOUND</div>' + TEMP_OFFLINE_PATTERN = r'^unmatchable$' #@TODO: find out the real TEMP_OFFLINE_PATTERN - LINK_FREE_PATTERN = r'onclick="return checkLoad\(\);" href="(.+?)" class="tlacitko velky"' + LINK_PATTERN = r'<a href="(http://\w+\.euroshare\.eu/file/.+?\?download_token=\w+)"' DL_LIMIT_PATTERN = r'<h2>Prebieha s.ahovanie</h2>|<p>Naraz je z jednej IP adresy mo.n. s.ahova. iba jeden s.bor' ERROR_PATTERN = r'href="/customer-zone/login/"' @@ -36,32 +38,18 @@ class EuroshareEu(SimpleHoster): URL_REPLACEMENTS = [(r'(http://[^/]*\.)(sk|cz|hu|pl)/', r'\1eu/')] - def handle_premium(self, pyfile): - if self.ERROR_PATTERN in self.data: - self.account.relogin() - self.retry(msg=_("User not logged in")) - - self.link = pyfile.url.rstrip('/') + "/download/" - - check = self.scan_download({ - 'login': re.compile(self.ERROR_PATTERN), - 'json' : re.compile(r'\{"status":"error".*?"message":"(.*?)"') - }) - - if check == "login" or (check == "json" and self.last_check.group(1) == "Access token expired"): - self.account.relogin() - self.retry(msg=_("Access token expired")) - - elif check == "json": - self.fail(self.last_check.group(1)) + def setup(self): + self.resume_download = True def handle_free(self, pyfile): if re.search(self.DL_LIMIT_PATTERN, self.data): self.wait(5 * 60, 12, _("Download limit reached")) - m = re.search(self.LINK_FREE_PATTERN, self.data) + self.data = self.load(pyfile.url, get={'download': "true"}) + + m = re.search(self.LINK_PATTERN, self.data) if m is None: - self.error(_("LINK_FREE_PATTERN not found")) + self.error(_("LINK_PATTERN not found")) self.link = m.group(1) |