summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Nitzo <nitzo2001@yahoo.com> 2016-07-20 00:45:05 +0200
committerGravatar Nitzo <nitzo2001@yahoo.com> 2016-07-20 00:45:05 +0200
commit09ec41fd28a680fcb1be30f0d3aba043b8fe50b8 (patch)
treeacafdea742df0446e55ded3a0f1c6048140af2c1
parent[RelinkUs] fix #2548 (diff)
downloadpyload-09ec41fd28a680fcb1be30f0d3aba043b8fe50b8.tar.xz
[EuroshareEu] fix #2551
-rw-r--r--module/plugins/accounts/EuroshareEu.py31
-rw-r--r--module/plugins/hoster/EuroshareEu.py40
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)