summaryrefslogtreecommitdiffstats
path: root/module
diff options
context:
space:
mode:
authorGravatar zoidberg10 <zoidberg@mujmail.cz> 2012-10-09 01:10:18 +0200
committerGravatar zoidberg10 <zoidberg@mujmail.cz> 2012-10-09 01:10:18 +0200
commitb01b2b3d9559b8352ee65ee2eff30843e6071987 (patch)
treec6c177ac4bdc2c720c34b069be5ad6655e8a6525 /module
parentfilebeer workaround, rehost.to chunklimit, multihoster config (diff)
downloadpyload-b01b2b3d9559b8352ee65ee2eff30843e6071987.tar.xz
euroshare.eu premium
Diffstat (limited to 'module')
-rw-r--r--module/plugins/accounts/EuroshareEu.py55
-rw-r--r--module/plugins/hoster/EuroshareEu.py22
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