diff options
Diffstat (limited to 'module/plugins/accounts/UploadedTo.py')
-rw-r--r-- | module/plugins/accounts/UploadedTo.py | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/module/plugins/accounts/UploadedTo.py b/module/plugins/accounts/UploadedTo.py index 91cdba2c1..3b0d957a5 100644 --- a/module/plugins/accounts/UploadedTo.py +++ b/module/plugins/accounts/UploadedTo.py @@ -9,16 +9,16 @@ from pyload.plugin.Account import Account class UploadedTo(Account): __name__ = "UploadedTo" __type__ = "account" - __version__ = "0.27" + __version__ = "0.30" __description__ = """Uploaded.to account plugin""" __license__ = "GPLv3" - __authors__ = [("mkaay", "mkaay@mkaay.de")] + __authors__ = [("Walter Purcaro", "vuolter@gmail.com")] PREMIUM_PATTERN = r'<em>Premium</em>' - VALID_UNTIL_PATTERN = r'<td>Duration:</td>\s*<th>([^<]+)' - TRAFFIC_LEFT_PATTERN = r'<th colspan="2"><b class="cB">([^<]+)' + VALID_UNTIL_PATTERN = r'<td>Duration:</td>\s*<th>(.+?)<' + TRAFFIC_LEFT_PATTERN = r'<b class="cB">(?P<S>[\d.,]+) (?P<U>[\w^_]+)' def loadAccountInfo(self, user, req): @@ -32,29 +32,40 @@ 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 += float(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() - return {'validuntil': validuntil, 'trafficleft': trafficleft, 'premium': premium} + 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} def login(self, user, data, req): - req.cj.setCookie("uploaded.net", "lang", "en") + # req.cj.setCookie("uploaded.net", "lang", "en") - page = req.load("http://uploaded.net/io/login", - post={'id': user, 'pw': data['password'], '_': ""}) + html = req.load("http://uploaded.net/io/login", + post={'id': user, 'pw': data['password'], '_': ""}, + decode=True) - if "User and password do not match" in page: + if '"err"' in html: self.wrongPassword() |