From 977bf7dd0e3550e77c221be1321ed52d408dd34b Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Thu, 18 Dec 2014 15:01:50 +0100 Subject: [UploadedTo] Fix trafficleft recognition --- module/plugins/accounts/UploadedTo.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'module/plugins/accounts/UploadedTo.py') diff --git a/module/plugins/accounts/UploadedTo.py b/module/plugins/accounts/UploadedTo.py index 6cb09e44b..947ac2b9e 100644 --- a/module/plugins/accounts/UploadedTo.py +++ b/module/plugins/accounts/UploadedTo.py @@ -9,16 +9,16 @@ from module.plugins.Account import Account class UploadedTo(Account): __name__ = "UploadedTo" __type__ = "account" - __version__ = "0.27" + __version__ = "0.28" __description__ = """Uploaded.to account plugin""" __license__ = "GPLv3" - __authors__ = [("mkaay", "mkaay@mkaay.de")] + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] PREMIUM_PATTERN = r'Premium' - VALID_UNTIL_PATTERN = r'Duration:\s*([^<]+)' - TRAFFIC_LEFT_PATTERN = r'([^<]+)' + VALID_UNTIL_PATTERN = r'Duration:\s*(.+?)<' + TRAFFIC_LEFT_PATTERN = r'(?P[\d.,]+) (?P[\w^_]+)' def loadAccountInfo(self, user, req): @@ -32,20 +32,28 @@ class UploadedTo(Account): m = re.search(self.VALID_UNTIL_PATTERN, html, re.M) if m: - expiredate = m.group(1).strip() + expiredate = m.group(1).lower().strip() if expiredate == "unlimited": validuntil = -1 else: - m = re.findall(r'(\d+) (Week|weeks|day|hour)', expiredate) + m = re.findall(r'(\d+) (week|day|hour)', expiredate) if m: validuntil = time() for n, u in m: - validuntil += int(n) * 60 * 60 * {'Week': 168, 'weeks': 168, 'day': 24, 'hour': 1}[u] + validuntil += int(n) * 60 * 60 * {'week': 168, 'day': 24, 'hour': 1}[u] m = re.search(self.TRAFFIC_LEFT_PATTERN, html) if m: - trafficleft = self.parseTraffic(m.group(1).replace('.', '')) + traffic = m.groupdict() + size = traffic['S'].replace('.', '') + unit = traffic['U'].lower() + + if unit.startswith('t'): #@NOTE: Remove in 0.4.10 + trafficleft = float(size.replace(',', '.')) / 1024 + trafficleft *= 1 << 40 + else: + trafficleft = self.parseTraffic(size + unit) return {'validuntil': validuntil, 'trafficleft': trafficleft, 'premium': premium} -- cgit v1.2.3 From fb65d5354c3cc80c3f48c3a2745b8dc01105edfd Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Thu, 18 Dec 2014 16:02:29 +0100 Subject: Update account plugins --- module/plugins/accounts/UploadedTo.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'module/plugins/accounts/UploadedTo.py') diff --git a/module/plugins/accounts/UploadedTo.py b/module/plugins/accounts/UploadedTo.py index 947ac2b9e..c09726799 100644 --- a/module/plugins/accounts/UploadedTo.py +++ b/module/plugins/accounts/UploadedTo.py @@ -9,7 +9,7 @@ from module.plugins.Account import Account class UploadedTo(Account): __name__ = "UploadedTo" __type__ = "account" - __version__ = "0.28" + __version__ = "0.29" __description__ = """Uploaded.to account plugin""" __license__ = "GPLv3" @@ -41,7 +41,7 @@ class UploadedTo(Account): if m: validuntil = time() for n, u in m: - validuntil += int(n) * 60 * 60 * {'week': 168, 'day': 24, 'hour': 1}[u] + validuntil += float(n) * 60 * 60 * {'week': 168, 'day': 24, 'hour': 1}[u] m = re.search(self.TRAFFIC_LEFT_PATTERN, html) if m: @@ -61,8 +61,8 @@ class UploadedTo(Account): def login(self, user, data, req): req.cj.setCookie("uploaded.net", "lang", "en") - page = req.load("http://uploaded.net/io/login", + html = req.load("http://uploaded.net/io/login", post={'id': user, 'pw': data['password'], '_': ""}) - if "User and password do not match" in page: + if "User and password do not match" in html: self.wrongPassword() -- cgit v1.2.3 From 36e60a23497ae05736c24fed2f4ce936fb61f744 Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Thu, 8 Jan 2015 23:31:33 +0100 Subject: "New Year" Update: account plugins --- module/plugins/accounts/UploadedTo.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'module/plugins/accounts/UploadedTo.py') diff --git a/module/plugins/accounts/UploadedTo.py b/module/plugins/accounts/UploadedTo.py index c09726799..1b6df97fb 100644 --- a/module/plugins/accounts/UploadedTo.py +++ b/module/plugins/accounts/UploadedTo.py @@ -9,7 +9,7 @@ from module.plugins.Account import Account class UploadedTo(Account): __name__ = "UploadedTo" __type__ = "account" - __version__ = "0.29" + __version__ = "0.30" __description__ = """Uploaded.to account plugin""" __license__ = "GPLv3" @@ -59,10 +59,11 @@ class UploadedTo(Account): def login(self, user, data, req): - req.cj.setCookie("uploaded.net", "lang", "en") + # req.cj.setCookie("uploaded.net", "lang", "en") html = req.load("http://uploaded.net/io/login", - post={'id': user, 'pw': data['password'], '_': ""}) + post={'id': user, 'pw': data['password'], '_': ""}, + decode=True) - if "User and password do not match" in html: + if '"err"' in html: self.wrongPassword() -- cgit v1.2.3 From 252e75ffcbcafc2e7e32d0e71f0d7a3c478cf6ba Mon Sep 17 00:00:00 2001 From: Walter Purcaro Date: Mon, 2 Feb 2015 16:36:49 +0100 Subject: [UploadedTo] Improve apiInfo (2) --- module/plugins/accounts/UploadedTo.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'module/plugins/accounts/UploadedTo.py') diff --git a/module/plugins/accounts/UploadedTo.py b/module/plugins/accounts/UploadedTo.py index 1b6df97fb..4e5c8035b 100644 --- a/module/plugins/accounts/UploadedTo.py +++ b/module/plugins/accounts/UploadedTo.py @@ -55,7 +55,9 @@ class UploadedTo(Account): else: trafficleft = self.parseTraffic(size + unit) - return {'validuntil': validuntil, 'trafficleft': trafficleft, 'premium': premium} + return {'validuntil' : validuntil, + 'trafficleft': trafficleft, + 'premium' : premium} def login(self, user, data, req): -- cgit v1.2.3