diff --git a/__init__.py b/__init__.py index f1af87b..6b78c30 100644 --- a/__init__.py +++ b/__init__.py @@ -102,6 +102,9 @@ def query(self, input): data = self.request({"query": {"input": input}}) return wolframalpha.Result(BytesIO(data.content)) + def query_to_string(self, input): + data = self.request({"query": {"input": input}}) + return data.content.decode("utf-8") def spoken(self, query, lat_lon, units='metric'): try: @@ -147,6 +150,7 @@ def __init_client(self): def initialize(self): self._setup() self.settings_change_callback =self.on_settings_changed + self.add_event('skill.wolfram.unspoken.request', self.emit_text_result) def on_settings_changed(self): self.log.debug("settings changed") @@ -176,6 +180,10 @@ def get_result(self, res): except: return result + def emit_text_result(self, message): + response = self.client.query_to_string(message.data.get('query')) + self.bus.emit(Message("skill.wolfram.unspoken.response", {'result': response})) + def CQS_match_query_phrase(self, utt): self.log.debug("WolframAlpha query: " + utt)