diff options
Diffstat (limited to 'module')
| -rw-r--r-- | module/plugins/accounts/RapidgatorNet.py | 4 | ||||
| -rw-r--r-- | module/plugins/accounts/WarserverCz.py | 45 | ||||
| -rw-r--r-- | module/plugins/hoster/RapidgatorNet.py | 4 | ||||
| -rw-r--r-- | module/plugins/hoster/WarserverCz.py | 44 | 
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(" ",""))) // 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 | 
