diff options
Diffstat (limited to 'pyload/plugins/accounts/DdlstorageCom.py')
-rw-r--r-- | pyload/plugins/accounts/DdlstorageCom.py | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/pyload/plugins/accounts/DdlstorageCom.py b/pyload/plugins/accounts/DdlstorageCom.py new file mode 100644 index 000000000..7404348a4 --- /dev/null +++ b/pyload/plugins/accounts/DdlstorageCom.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +from hashlib import md5 +from time import mktime, strptime + +from module.plugins.internal.XFSPAccount import XFSPAccount +from module.common.json_layer import json_loads +from module.utils import parseFileSize + +# DDLStorage API Documentation: +# http://www.ddlstorage.com/cgi-bin/api_req.cgi?req_type=doc + + +class DdlstorageCom(XFSPAccount): + __name__ = "DdlstorageCom" + __version__ = "1.00" + __type__ = "account" + __description__ = """DDLStorage.com account plugin""" + __author_name__ = ("stickell") + __author_mail__ = ("l.stickell@yahoo.it") + + MAIN_PAGE = "http://ddlstorage.com/" + + def loadAccountInfo(self, user, req): + password = self.accounts[user]['password'] + api_data = req.load('http://www.ddlstorage.com/cgi-bin/api_req.cgi', + post={'req_type': 'user_info', + 'client_id': 53472, + 'user_login': user, + 'user_password': md5(password).hexdigest(), + 'sign': md5('user_info%d%s%s%s' % (53472, user, md5(password).hexdigest(), + '25JcpU2dPOKg8E2OEoRqMSRu068r0Cv3')).hexdigest()}) + api_data = api_data.replace('<pre>', '').replace('</pre>', '') + self.logDebug('Account Info API data: ' + api_data) + api_data = json_loads(api_data) + + if api_data['status'] != 'OK': # 'status' must be always OK for a working account + return {"premium": False, "valid": False} + + if api_data['account_type'] == 'REGISTERED': + premium = False + validuntil = None + else: + premium = True + validuntil = int(mktime(strptime(api_data['premium_expire'], "%Y-%m-%d %H:%M:%S"))) + + if api_data['usr_bandwidth_available'] == 'UNLIMITED': + trafficleft = -1 + else: + trafficleft = parseFileSize(api_data['usr_bandwidth_available']) / 1024 + + return {"premium": premium, "validuntil": validuntil, "trafficleft": trafficleft} |