diff options
Diffstat (limited to 'module/plugins/accounts')
| -rw-r--r-- | module/plugins/accounts/Keep2ShareCc.py | 73 | ||||
| -rw-r--r-- | module/plugins/accounts/MegaRapidoNet.py | 57 | 
2 files changed, 130 insertions, 0 deletions
| diff --git a/module/plugins/accounts/Keep2ShareCc.py b/module/plugins/accounts/Keep2ShareCc.py new file mode 100644 index 000000000..d2ba1d237 --- /dev/null +++ b/module/plugins/accounts/Keep2ShareCc.py @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- + +import re +import time + +from module.plugins.Account import Account + + +class Keep2ShareCc(Account): +    __name__    = "Keep2ShareCc" +    __type__    = "account" +    __version__ = "0.05" + +    __description__ = """Keep2Share.cc account plugin""" +    __license__     = "GPLv3" +    __authors__     = [("aeronaut", "aeronaut@pianoguy.de"), +                       ("Walter Purcaro", "vuolter@gmail.com")] + + +    VALID_UNTIL_PATTERN  = r'Premium expires:\s*<b>(.+?)<' +    TRAFFIC_LEFT_PATTERN = r'Available traffic \(today\):\s*<b><a href="/user/statistic.html">(.+?)<' + +    LOGIN_FAIL_PATTERN = r'Please fix the following input errors' + + +    def loadAccountInfo(self, user, req): +        validuntil  = None +        trafficleft = -1 +        premium     = False + +        html = req.load("http://keep2share.cc/site/profile.html", decode=True) + +        m = re.search(self.VALID_UNTIL_PATTERN, html) +        if m: +            expiredate = m.group(1).strip() +            self.logDebug("Expire date: " + expiredate) + +            if expiredate == "LifeTime": +                premium    = True +                validuntil = -1 +            else: +                try: +                    validuntil = time.mktime(time.strptime(expiredate, "%Y.%m.%d")) + +                except Exception, e: +                    self.logError(e) + +                else: +                    premium = True if validuntil > time.mktime(time.gmtime()) else False + +            m = re.search(self.TRAFFIC_LEFT_PATTERN, html) +            if m: +                try: +                    trafficleft = self.parseTraffic(m.group(1)) + +                except Exception, e: +                    self.logError(e) + +        return {'validuntil': validuntil, 'trafficleft': trafficleft, 'premium': premium} + + +    def login(self, user, data, req): +        req.cj.setCookie("keep2share.cc", "lang", "en") + +        html = req.load("http://keep2share.cc/login.html", +                        post={'LoginForm[username]'  : user, +                              'LoginForm[password]'  : data['password'], +                              'LoginForm[rememberMe]': 1, +                              'yt0'                  : ""}, +                        decode=True) + +        if re.search(self.LOGIN_FAIL_PATTERN, html): +            self.wrongPassword() diff --git a/module/plugins/accounts/MegaRapidoNet.py b/module/plugins/accounts/MegaRapidoNet.py new file mode 100644 index 000000000..80e066244 --- /dev/null +++ b/module/plugins/accounts/MegaRapidoNet.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- + +import re +import time + +from module.plugins.Account import Account + + +class MegaRapidoNet(Account): +    __name__    = "MegaRapidoNet" +    __type__    = "account" +    __version__ = "0.02" + +    __description__ = """MegaRapido.net account plugin""" +    __license__     = "GPLv3" +    __authors__     = [("Kagenoshin", "kagenoshin@gmx.ch")] + + +    VALID_UNTIL_PATTERN = r'<\s*?div[^>]*?class\s*?=\s*?[\'"]premium_index[\'"][^>]*>[^<]*?<[^>]*?b[^>]*>\s*?TEMPO\s*?PREMIUM[^<]*<[^>]*?/b[^>]*>\s*?(\d*)[^\d]*?DIAS[^\d]*?(\d*)[^\d]*?HORAS[^\d]*?(\d*)[^\d]*?MINUTOS[^\d]*?(\d*)[^\d]*?SEGUNDOS' +    USER_ID_PATTERN     = r'<\s*?div[^>]*?class\s*?=\s*?["\']checkbox_compartilhar["\'][^>]*>[^<]*<\s*?input[^>]*?name\s*?=\s*?["\']usar["\'][^>]*>[^<]*<\s*?input[^>]*?name\s*?=\s*?["\']user["\'][^>]*?value\s*?=\s*?["\'](.*?)\s*?["\']' + + +    def loadAccountInfo(self, user, req): +        validuntil  = None +        trafficleft = None +        premium     = False + +        html = req.load("http://megarapido.net/gerador", decode=True) + +        validuntil = re.search(self.VALID_UNTIL_PATTERN, html) +        if validuntil: +            #hier weitermachen!!! (müssen umbedingt die zeit richtig machen damit! (sollte aber möglich)) +            validuntil  = time.time() + int(validuntil.group(1)) * 24 * 3600 + int(validuntil.group(2)) * 3600 + int(validuntil.group(3)) * 60 + int(validuntil.group(4)) +            trafficleft = -1 +            premium     = True + +        return {'validuntil' : validuntil, +                'trafficleft': trafficleft, +                'premium'    : premium} + + +    def login(self, user, data, req): +        req.load("http://megarapido.net/login") +        req.load("http://megarapido.net/painel_user/ajax/logar.php", +                 post={'login': user, 'senha': data['password']}, +                 decode=True) + +        html = req.load("http://megarapido.net/gerador") + +        if "sair" not in html.lower(): +            self.wrongPassword() +        else: +        	m = re.search(self.USER_ID_PATTERN, html) +        	if m: +        		data['uid'] = m.group(1) +        	else: +        		self.fail("Couldn't find the user ID") | 
