diff options
-rw-r--r-- | module/plugins/accounts/ShareonlineBiz.py | 53 | ||||
-rw-r--r-- | module/plugins/hoster/RealdebridCom.py | 2 |
2 files changed, 36 insertions, 19 deletions
diff --git a/module/plugins/accounts/ShareonlineBiz.py b/module/plugins/accounts/ShareonlineBiz.py index 49afa12b8..c08d6f963 100644 --- a/module/plugins/accounts/ShareonlineBiz.py +++ b/module/plugins/accounts/ShareonlineBiz.py @@ -6,40 +6,57 @@ from module.plugins.Account import Account class ShareonlineBiz(Account): __name__ = "ShareonlineBiz" __type__ = "account" - __version__ = "0.25" + __version__ = "0.26" __description__ = """Share-online.biz account plugin""" __license__ = "GPLv3" __authors__ = [("mkaay", "mkaay@mkaay.de"), - ("zoidberg", "zoidberg@mujmail.cz")] + ("zoidberg", "zoidberg@mujmail.cz"), + ("Walter Purcaro", "vuolter@gmail.com")] - def getUserAPI(self, user, req): - return req.load("http://api.share-online.biz/account.php", - get={"username": user, "password": self.accounts[user]['password'], 'act': "userDetails"}) + def api_response(self, user, req): + return req.load("http://api.share-online.biz/cgi-bin", + get={'q': "userdetails", 'aux': "traffic", "username": user, "password": self.accounts[user]['password']}) def loadAccountInfo(self, user, req): - html = self.getUserAPI(user, req) + premium = False + validuntil = None + trafficleft = -1 + maxtraffic = 100 * 1024 * 1024 * 1024 #: 100 GB - info = {} - for line in html.splitlines(): + api = {} + for line in self.api_response(user, req).splitlines(): if "=" in line: key, value = line.split("=") - info[key] = value - self.logDebug(info) + api[key] = value - if "dl" in info and info['dl'].lower() != "not_available": - req.cj.setCookie("share-online.biz", "dl", info['dl']) - if "a" in info and info['a'].lower() != "not_available": - req.cj.setCookie("share-online.biz", "a", info['a']) + self.logDebug(api) - return {"validuntil" : float(info['expire_date']) if "expire_date" in info else -1, - "trafficleft": -1, - "premium" : True if ("dl" in info or "a" in info) and (info['group'] != "Sammler") else False} + for key in ("dl", "a"): + if key not in api: + continue + + if api['group'] != "Sammler": + premium = True + + if api[key].lower() != "not_available": + req.cj.setCookie("share-online.biz", key, api[key]) + break + + if 'expire_date' in api: + validuntil = float(api['expire_date']) + + if 'traffic_1d' in api: + traffic = int(api['traffic_1d'].split(";")[0]) + maxtraffic = max(maxtraffic, traffic) + trafficleft = maxtraffic - traffic + + return {'premium': premium, 'validuntil': validuntil, 'trafficleft': trafficleft, 'maxtraffic': maxtraffic} def login(self, user, data, req): - html = self.getUserAPI(user, req) + html = self.api_response(user, req) if "EXCEPTION" in html: self.wrongPassword() diff --git a/module/plugins/hoster/RealdebridCom.py b/module/plugins/hoster/RealdebridCom.py index eb27a26f9..d283ce8ea 100644 --- a/module/plugins/hoster/RealdebridCom.py +++ b/module/plugins/hoster/RealdebridCom.py @@ -16,7 +16,7 @@ class RealdebridCom(MultiHoster): __type__ = "hoster" __version__ = "0.59" - __pattern__ = r'https?://(?:[^/]+\.)?real-debrid\..*' + __pattern__ = r'https?://(?:[^/]+\.)?real-debrid\..+' __description__ = """Real-Debrid.com hoster plugin""" __license__ = "GPLv3" |