diff options
Diffstat (limited to 'module/plugins/accounts/UploadingCom.py')
| -rw-r--r-- | module/plugins/accounts/UploadingCom.py | 63 | 
1 files changed, 63 insertions, 0 deletions
diff --git a/module/plugins/accounts/UploadingCom.py b/module/plugins/accounts/UploadingCom.py new file mode 100644 index 000000000..6d54469e8 --- /dev/null +++ b/module/plugins/accounts/UploadingCom.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- + +import re + +from time import time, strptime, mktime + +from pyload.plugin.Account import Account +from pyload.plugin.internal.SimpleHoster import set_cookies + + +class UploadingCom(Account): +    __name__    = "UploadingCom" +    __type__    = "account" +    __version__ = "0.11" + +    __description__ = """Uploading.com account plugin""" +    __license__     = "GPLv3" +    __authors__     = [("mkaay", "mkaay@mkaay.de")] + + +    PREMIUM_PATTERN = r'UPGRADE TO PREMIUM' +    VALID_UNTIL_PATTERN = r'Valid Until:(.+?)<' + + +    def loadAccountInfo(self, user, req): +        validuntil  = None +        trafficleft = None +        premium     = None + +        html = req.load("http://uploading.com/") + +        premium = False if re.search(self.PREMIUM_PATTERN, html) else True + +        m = re.search(self.VALID_UNTIL_PATTERN, html) +        if m: +            expiredate = m.group(1).strip() +            self.logDebug("Expire date: " + expiredate) + +            try: +                validuntil = mktime(strptime(expiredate, "%b %d, %Y")) + +            except Exception, e: +                self.logError(e) + +            else: +                if validuntil > mktime(gmtime()): +                    premium = True +                else: +                    premium = False +                    validuntil = None + +        return {'validuntil': validuntil, 'trafficleft': trafficleft, 'premium': premium} + + +    def login(self, user, data, req): +        set_cookies([("uploading.com", "lang", "1"), +                     ("uploading.com", "language", "1"), +                     ("uploading.com", "setlang", "en"), +                     ("uploading.com", "_lang", "en")] + +        req.load("http://uploading.com/") +        req.load("http://uploading.com/general/login_form/?JsHttpRequest=%s-xml" % long(time() * 1000), +                 post={'email': user, 'password': data['password'], 'remember': "on"})  | 
