prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  ShareOnline PrePaid is not recognized
  As the title says. A PrePaid ShareOnline Account is not recognized as valid Premium Account and therefore pyload asks for Captchas when trying to download an URL.
  
  ![Share Online User Profile](https://cloud.githubusercontent.com/assets/3457747/5946557/f3099568-a736-11e4-891e-11db8404ef96.png)
  
  ![pyload](https://cloud.githubusercontent.com/assets/3457747/5946588/49292972-a737-11e4-8040-1bbb692f945d.png)
  
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `module/plugins/accounts/ShareonlineBiz.py`
  Content:
  ```
  1 # -*- coding: utf-8 -*-
  2 
  3 import re
  4 
  5 from module.plugins.Account import Account
  6 
  7 
  8 class ShareonlineBiz(Account):
  9     __name__    = "ShareonlineBiz"
  10     __type__    = "account"
  11     __version__ = "0.30"
  12 
  13     __description__ = """Share-online.biz account plugin"""
  14     __license__     = "GPLv3"
  15     __authors__     = [("Walter Purcaro", "vuolter@gmail.com")]
  16 
  17 
  18     def api_response(self, user, req):
  19         return req.load("http://api.share-online.biz/cgi-bin",
  20                         get={'q'       : "userdetails",
  21                              'aux'     : "traffic",
  22                              'username': user,
  23                              'password': self.getAccountData(user)['password']})
  24 
  25 
  26     def loadAccountInfo(self, user, req):
  27         premium     = False
  28         validuntil  = None
  29         trafficleft = -1
  30         maxtraffic  = 100 * 1024 * 1024 * 1024  #: 100 GB
  31 
  32         api = {}
  33         for line in self.api_response(user, req).splitlines():
  34             if "=" in line:
  35                 key, value = line.split("=")
  36                 api[key] = value
  37 
  38         self.logDebug(api)
  39 
  40         if api['a'].lower() != "not_available":
  41             req.cj.setCookie("share-online.biz", 'a', api['a'])
  42 
  43             premium = api['group'] == "Premium"
  44 
  45             validuntil = float(api['expire_date'])
  46 
  47             traffic     = float(api['traffic_1d'].split(";")[0])
  48             maxtraffic  = max(maxtraffic, traffic)
  49             trafficleft = maxtraffic - traffic
  50 
  51         maxtraffic  /= 1024  #@TODO: Remove `/ 1024` in 0.4.10
  52         trafficleft /= 1024  #@TODO: Remove `/ 1024` in 0.4.10
  53 
  54         return {'premium': premium, 'validuntil': validuntil, 'trafficleft': trafficleft, 'maxtraffic': maxtraffic}
  55 
  56 
  57     def login(self, user, data, req):
  58         html = self.api_response(user, req)
  59         err  = re.search(r'\*\*(.+?)\*\*', html)
  60         if err:
  61             self.logError(err.group(1))
  62             self.wrongPassword()
  63
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/module/plugins/accounts/ShareonlineBiz.py b/module/plugins/accounts/ShareonlineBiz.py
  --- a/module/plugins/accounts/ShareonlineBiz.py
  +++ b/module/plugins/accounts/ShareonlineBiz.py
  @@ -8,7 +8,7 @@
   class ShareonlineBiz(Account):
       __name__    = "ShareonlineBiz"
       __type__    = "account"
  -    __version__ = "0.30"
  +    __version__ = "0.31"
   
       __description__ = """Share-online.biz account plugin"""
       __license__     = "GPLv3"
  @@ -40,7 +40,7 @@
           if api['a'].lower() != "not_available":
               req.cj.setCookie("share-online.biz", 'a', api['a'])
   
  -            premium = api['group'] == "Premium"
  +            premium = api['group'] in ["Premium", "PrePaid"]
   
               validuntil = float(api['expire_date'])
  
verification_info: {"golden_diff": "diff --git a/module/plugins/accounts/ShareonlineBiz.py b/module/plugins/accounts/ShareonlineBiz.py\n--- a/module/plugins/accounts/ShareonlineBiz.py\n+++ b/module/plugins/accounts/ShareonlineBiz.py\n@@ -8,7 +8,7 @@\n class ShareonlineBiz(Account):\n     __name__    = \"ShareonlineBiz\"\n     __type__    = \"account\"\n-    __version__ = \"0.30\"\n+    __version__ = \"0.31\"\n \n     __description__ = \"\"\"Share-online.biz account plugin\"\"\"\n     __license__     = \"GPLv3\"\n@@ -40,7 +40,7 @@\n         if api['a'].lower() != \"not_available\":\n             req.cj.setCookie(\"share-online.biz\", 'a', api['a'])\n \n-            premium = api['group'] == \"Premium\"\n+            premium = api['group'] in [\"Premium\", \"PrePaid\"]\n \n             validuntil = float(api['expire_date'])\n", "issue": "ShareOnline PrePaid is not recognized\nAs the title says. A PrePaid ShareOnline Account is not recognized as valid Premium Account and therefore pyload asks for Captchas when trying to download an URL.\n\n![Share Online User Profile](https://cloud.githubusercontent.com/assets/3457747/5946557/f3099568-a736-11e4-891e-11db8404ef96.png)\n\n![pyload](https://cloud.githubusercontent.com/assets/3457747/5946588/49292972-a737-11e4-8040-1bbb692f945d.png)\n\n", "before_files": [{"content": "# -*- coding: utf-8 -*-\n\nimport re\n\nfrom module.plugins.Account import Account\n\n\nclass ShareonlineBiz(Account):\n    __name__    = \"ShareonlineBiz\"\n    __type__    = \"account\"\n    __version__ = \"0.30\"\n\n    __description__ = \"\"\"Share-online.biz account plugin\"\"\"\n    __license__     = \"GPLv3\"\n    __authors__     = [(\"Walter Purcaro\", \"vuolter@gmail.com\")]\n\n\n    def api_response(self, user, req):\n        return req.load(\"http://api.share-online.biz/cgi-bin\",\n                        get={'q'       : \"userdetails\",\n                             'aux'     : \"traffic\",\n                             'username': user,\n                             'password': self.getAccountData(user)['password']})\n\n\n    def loadAccountInfo(self, user, req):\n        premium     = False\n        validuntil  = None\n        trafficleft = -1\n        maxtraffic  = 100 * 1024 * 1024 * 1024  #: 100 GB\n\n        api = {}\n        for line in self.api_response(user, req).splitlines():\n            if \"=\" in line:\n                key, value = line.split(\"=\")\n                api[key] = value\n\n        self.logDebug(api)\n\n        if api['a'].lower() != \"not_available\":\n            req.cj.setCookie(\"share-online.biz\", 'a', api['a'])\n\n            premium = api['group'] == \"Premium\"\n\n            validuntil = float(api['expire_date'])\n\n            traffic     = float(api['traffic_1d'].split(\";\")[0])\n            maxtraffic  = max(maxtraffic, traffic)\n            trafficleft = maxtraffic - traffic\n\n        maxtraffic  /= 1024  #@TODO: Remove `/ 1024` in 0.4.10\n        trafficleft /= 1024  #@TODO: Remove `/ 1024` in 0.4.10\n\n        return {'premium': premium, 'validuntil': validuntil, 'trafficleft': trafficleft, 'maxtraffic': maxtraffic}\n\n\n    def login(self, user, data, req):\n        html = self.api_response(user, req)\n        err  = re.search(r'\\*\\*(.+?)\\*\\*', html)\n        if err:\n            self.logError(err.group(1))\n            self.wrongPassword()\n", "path": "module/plugins/accounts/ShareonlineBiz.py"}], "after_files": [{"content": "# -*- coding: utf-8 -*-\n\nimport re\n\nfrom module.plugins.Account import Account\n\n\nclass ShareonlineBiz(Account):\n    __name__    = \"ShareonlineBiz\"\n    __type__    = \"account\"\n    __version__ = \"0.31\"\n\n    __description__ = \"\"\"Share-online.biz account plugin\"\"\"\n    __license__     = \"GPLv3\"\n    __authors__     = [(\"Walter Purcaro\", \"vuolter@gmail.com\")]\n\n\n    def api_response(self, user, req):\n        return req.load(\"http://api.share-online.biz/cgi-bin\",\n                        get={'q'       : \"userdetails\",\n                             'aux'     : \"traffic\",\n                             'username': user,\n                             'password': self.getAccountData(user)['password']})\n\n\n    def loadAccountInfo(self, user, req):\n        premium     = False\n        validuntil  = None\n        trafficleft = -1\n        maxtraffic  = 100 * 1024 * 1024 * 1024  #: 100 GB\n\n        api = {}\n        for line in self.api_response(user, req).splitlines():\n            if \"=\" in line:\n                key, value = line.split(\"=\")\n                api[key] = value\n\n        self.logDebug(api)\n\n        if api['a'].lower() != \"not_available\":\n            req.cj.setCookie(\"share-online.biz\", 'a', api['a'])\n\n            premium = api['group'] in [\"Premium\", \"PrePaid\"]\n\n            validuntil = float(api['expire_date'])\n\n            traffic     = float(api['traffic_1d'].split(\";\")[0])\n            maxtraffic  = max(maxtraffic, traffic)\n            trafficleft = maxtraffic - traffic\n\n        maxtraffic  /= 1024  #@TODO: Remove `/ 1024` in 0.4.10\n        trafficleft /= 1024  #@TODO: Remove `/ 1024` in 0.4.10\n\n        return {'premium': premium, 'validuntil': validuntil, 'trafficleft': trafficleft, 'maxtraffic': maxtraffic}\n\n\n    def login(self, user, data, req):\n        html = self.api_response(user, req)\n        err  = re.search(r'\\*\\*(.+?)\\*\\*', html)\n        if err:\n            self.logError(err.group(1))\n            self.wrongPassword()\n", "path": "module/plugins/accounts/ShareonlineBiz.py"}]}