summaryrefslogtreecommitdiffstats
path: root/module/plugins/hoster/EuroshareEu.py
diff options
context:
space:
mode:
Diffstat (limited to 'module/plugins/hoster/EuroshareEu.py')
-rw-r--r--module/plugins/hoster/EuroshareEu.py40
1 files changed, 14 insertions, 26 deletions
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)