summaryrefslogtreecommitdiffstats
path: root/module
diff options
context:
space:
mode:
Diffstat (limited to 'module')
-rw-r--r--module/plugins/accounts/RapidgatorNet.py4
-rw-r--r--module/plugins/accounts/WarserverCz.py45
-rw-r--r--module/plugins/hoster/RapidgatorNet.py4
-rw-r--r--module/plugins/hoster/WarserverCz.py44
4 files changed, 85 insertions, 12 deletions
diff --git a/module/plugins/accounts/RapidgatorNet.py b/module/plugins/accounts/RapidgatorNet.py
index e88be71ea..126271468 100644
--- a/module/plugins/accounts/RapidgatorNet.py
+++ b/module/plugins/accounts/RapidgatorNet.py
@@ -24,13 +24,13 @@ from module.common.json_layer import json_loads
class RapidgatorNet(Account):
__name__ = "RapidgatorNet"
- __version__ = "0.01"
+ __version__ = "0.02"
__type__ = "account"
__description__ = """rapidgator.net account plugin"""
__author_name__ = ("zoidberg")
__author_mail__ = ("zoidberg@mujmail.cz")
- API_URL = 'http://test.rapidgator.net/api/user'
+ API_URL = 'http://rapidgator.net/api/user'
def loadAccountInfo(self, user, req):
try:
diff --git a/module/plugins/accounts/WarserverCz.py b/module/plugins/accounts/WarserverCz.py
index b3cafdb5f..21961956b 100644
--- a/module/plugins/accounts/WarserverCz.py
+++ b/module/plugins/accounts/WarserverCz.py
@@ -17,17 +17,54 @@
@author: zoidberg
"""
-from module.plugins.accounts.CoolshareCz import CoolshareCz
+from module.plugins.Account import Account
import re
from module.utils import parseFileSize
from time import mktime, strptime
-class WarserverCz(CoolshareCz):
+class WarserverCz(Account):
__name__ = "WarserverCz"
- __version__ = "0.01"
+ __version__ = "0.02"
__type__ = "account"
__description__ = """Warserver.cz account plugin"""
__author_name__ = ("zoidberg")
__author_mail__ = ("zoidberg@mujmail.cz")
- DOMAIN = "http://www.warserver.cz" \ No newline at end of file
+ VALID_UNTIL_PATTERN = ur'<li>Neomezené stahování do: <strong>(.+?)<'
+ TRAFFIC_LEFT_PATTERN = ur'<li>Kredit: <strong>(.+?)<'
+
+ DOMAIN = "http://www.warserver.cz"
+
+ def loadAccountInfo(self, user, req):
+ html = req.load("%s/uzivatele/prehled" % self.DOMAIN, decode = True)
+
+ validuntil = trafficleft = None
+ premium = False
+
+ found = re.search(self.VALID_UNTIL_PATTERN, html)
+ if found:
+ self.logDebug("VALID_UNTIL", found.group(1))
+ try:
+ #validuntil = mktime(strptime(found.group(1), "%d %B %Y"))
+ premium = True
+ trafficleft = -1
+ except Exception, e:
+ self.logError(e)
+
+ found = re.search(self.TRAFFIC_LEFT_PATTERN, html)
+ if found:
+ self.logDebug("TRAFFIC_LEFT", found.group(1))
+ trafficleft = parseFileSize((found.group(1).replace("&thinsp;",""))) // 1024
+ premium = True if trafficleft > 1 << 18 else False
+
+ return ({"validuntil": validuntil, "trafficleft": trafficleft, "premium": premium})
+
+ def login(self, user, data, req):
+ html = req.load('%s/uzivatele/prihlaseni?do=prihlaseni-submit' % self.DOMAIN,
+ post = {"username": user,
+ "password": data['password'],
+ "send": u"Přihlásit"},
+ decode = True)
+
+ if '<p class="chyba">' in html:
+ self.wrongPassword() \ No newline at end of file
diff --git a/module/plugins/hoster/RapidgatorNet.py b/module/plugins/hoster/RapidgatorNet.py
index 6c09eabb9..47ab662d9 100644
--- a/module/plugins/hoster/RapidgatorNet.py
+++ b/module/plugins/hoster/RapidgatorNet.py
@@ -28,11 +28,11 @@ class RapidgatorNet(SimpleHoster):
__name__ = "RapidgatorNet"
__type__ = "hoster"
__pattern__ = r"http://(?:www\.)?(rapidgator.net)/file/(\d+)"
- __version__ = "0.08"
+ __version__ = "0.09"
__description__ = """rapidgator.net"""
__author_name__ = ("zoidberg","chrox")
- API_URL = 'http://test.rapidgator.net/api/file'
+ API_URL = 'http://rapidgator.net/api/file'
FILE_INFO_PATTERN = r'Downloading:(\s*<[^>]*>)*\s*(?P<N>.*?)(\s*<[^>]*>)*\s*File size:\s*<strong>(?P<S>.*?)</strong>'
FILE_OFFLINE_PATTERN = r'<title>File not found</title>'
diff --git a/module/plugins/hoster/WarserverCz.py b/module/plugins/hoster/WarserverCz.py
index 423170319..b256f8d1b 100644
--- a/module/plugins/hoster/WarserverCz.py
+++ b/module/plugins/hoster/WarserverCz.py
@@ -16,19 +16,55 @@
@author: zoidberg
"""
+#similar to coolshare.cz (down)
+
import re
-from module.plugins.hoster.CoolshareCz import CoolshareCz
-from module.plugins.internal.SimpleHoster import create_getInfo
+from module.plugins.internal.SimpleHoster import SimpleHoster, create_getInfo
+from module.network.HTTPRequest import BadHeader
+from module.utils import html_unescape
-class WarserverCz(CoolshareCz):
+class WarserverCz(SimpleHoster):
__name__ = "WarserverCz"
__type__ = "hoster"
__pattern__ = r"http://(?:\w*\.)?warserver.cz/stahnout/(?P<ID>\d+)/.+"
- __version__ = "0.11"
+ __version__ = "0.12"
__description__ = """Warserver.cz"""
__author_name__ = ("zoidberg")
FILE_NAME_PATTERN = r'<h1.*?>(?P<N>[^<]+)</h1>'
+ FILE_SIZE_PATTERN = r'<li>Velikost: <strong>(?P<S>[^<]+)</strong>'
+ FILE_OFFLINE_PATTERN = r'<h1>Soubor nenalezen</h1>'
+
+ PREMIUM_URL_PATTERN = r'href="(http://[^/]+/dwn-premium.php.*?)"'
+ DOMAIN = "http://csd01.coolshare.cz"
+
DOMAIN = "http://s01.warserver.cz"
+
+ def handleFree(self):
+ try:
+ self.download("%s/dwn-free.php?fid=%s" % (self.DOMAIN, self.file_info['ID']))
+ except BadHeader, e:
+ self.logError(e)
+ if e.code == 403:
+ self.longWait(60,60)
+ else: raise
+ self.checkDownloadedFile()
+
+ def handlePremium(self):
+ found = re.search(self.PREMIUM_URL_PATTERN, self.html)
+ if not found: self.parseError("Premium URL")
+ url = html_unescape(found.group(1))
+ self.logDebug("Premium URL: " + url)
+ if not url.startswith("http://"): self.resetAccount()
+ self.download(url)
+ self.checkDownloadedFile()
+
+ def checkDownloadedFile(self):
+ check = self.checkDownload({
+ "offline": ">404 Not Found<"
+ })
+
+ if check == "offline":
+ self.offline()
getInfo = create_getInfo(WarserverCz) \ No newline at end of file