From 6d37faed5243ad3c0b5d64d509733c42b5f39084 Mon Sep 17 00:00:00 2001 From: Paul King Date: Sun, 15 May 2011 11:04:32 +0100 Subject: fix premium and convert to json --- module/plugins/accounts/FilesonicCom.py | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) (limited to 'module/plugins') diff --git a/module/plugins/accounts/FilesonicCom.py b/module/plugins/accounts/FilesonicCom.py index 1200550ae..7ea7ea7cb 100644 --- a/module/plugins/accounts/FilesonicCom.py +++ b/module/plugins/accounts/FilesonicCom.py @@ -22,29 +22,37 @@ from time import mktime, strptime from module.plugins.Account import Account +try: + from json import loads as json_loads +except ImportError: # pragma: no cover + from module.lib.simplejson import loads as json_loads + + class FilesonicCom(Account): __name__ = "FilesonicCom" - __version__ = "0.3" + __version__ = "0.31" __type__ = "account" __description__ = """filesonic.com account plugin""" - __author_name__ = ("RaNaN") - __author_mail__ = ("RaNaN@pyload.org") + __author_name__ = ("RaNaN","Paul King") + __author_mail__ = ("RaNaN@pyload.org","") def getDomain(self, req): - xml = req.load("http://api.filesonic.com/utility?method=getFilesonicDomainForCurrentIp&format=xml").decode("utf8") - return re.search(r"response>.*?(filesonic\..*?)failed', xml): + self.core.log.debug(_("%s: account status retrieved from api %s" % (self.__name__,xml))) + json = json_loads(xml) + if json["FSApi_User"]["getInfo"]["status"] != "success": self.core.log.error(_("%s: Invalid login retrieving user details" % self.__name__)) - self.wrongPassword() - premium = bool(int(re.search(r'(\d+)',xml).group(1))) + return {"validuntil": -1, "trafficleft": -1, "premium" : False} + premium = json["FSApi_User"]["getInfo"]["response"]["users"]["user"]["is_premium"] if premium: - validuntil = re.search(r'\d+-\d+-\d+ \d+:\d+:\d+