diff options
Diffstat (limited to 'module/plugins')
| -rw-r--r-- | module/plugins/accounts/UploadedTo.py | 24 | 
1 files changed, 16 insertions, 8 deletions
| 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'<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,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} | 
