diff --git a/mycroft/api/__init__.py b/mycroft/api/__init__.py index dbd22dde08..91b717ae7c 100644 --- a/mycroft/api/__init__.py +++ b/mycroft/api/__init__.py @@ -20,23 +20,23 @@ class Api(object): method = params.get("method", "GET") headers = self.build_headers(params) json = self.build_json(params) - query = params.get("query") + query = self.build_query(params) url = self.build_url(params) response = requests.request(method, url, headers=headers, params=query, data=params.get("data"), json=json) return self.get_response(response) - @staticmethod - def get_response(response): - try: - data = response.json() - except: - data = response.text - + def get_response(self, response): + data = self.get_data(response) if 200 <= response.status_code < 300: return data - else: - raise HTTPError(data, response=response) + raise HTTPError(data, response=response) + + def get_data(self, response): + try: + return response.json() + except: + return response.text def build_headers(self, params): headers = params.get("headers", {}) @@ -62,6 +62,9 @@ class Api(object): params["json"] = json return json + def build_query(self, params): + return params.get("query") + def build_url(self, params): path = params.get("path", "") version = params.get("version", self.version) diff --git a/mycroft/skills/wolfram_alpha/__init__.py b/mycroft/skills/wolfram_alpha/__init__.py index c190ea9abe..a7abfb195f 100644 --- a/mycroft/skills/wolfram_alpha/__init__.py +++ b/mycroft/skills/wolfram_alpha/__init__.py @@ -75,9 +75,12 @@ class WAApi(Api): def __init__(self): super(WAApi, self).__init__("wa") + def get_data(self, response): + return response.text + def query(self, input): - response = self.request({"query": {"input": input}}) - return wolframalpha.Result(StringIO(response.content)) + data = self.request({"query": {"input": input}}) + return wolframalpha.Result(StringIO(data)) class WolframAlphaSkill(MycroftSkill):