From 540cd893c26ecd5c82151a1eedc7d2f48cb3bd6f Mon Sep 17 00:00:00 2001 From: Augusto Monteiro Date: Tue, 31 Jan 2017 17:11:06 -0300 Subject: [PATCH] #487 - Integrating location microservice with mycroft core --- mycroft/api/__init__.py | 5 +++++ mycroft/configuration/__init__.py | 4 ++++ mycroft/skills/configuration/__init__.py | 4 ++++ 3 files changed, 13 insertions(+) diff --git a/mycroft/api/__init__.py b/mycroft/api/__init__.py index 6521a02368..e36444b6d9 100644 --- a/mycroft/api/__init__.py +++ b/mycroft/api/__init__.py @@ -138,6 +138,11 @@ class DeviceApi(Api): "path": "/" + self.identity.uuid + "/setting" }) + def find_location(self): + return self.request({ + "path": "/" + self.identity.uuid + "/location" + }) + class STTApi(Api): def __init__(self): diff --git a/mycroft/configuration/__init__.py b/mycroft/configuration/__init__.py index ed28feebc0..6f337c35fc 100644 --- a/mycroft/configuration/__init__.py +++ b/mycroft/configuration/__init__.py @@ -111,6 +111,10 @@ class RemoteConfiguration(object): try: from mycroft.api import DeviceApi setting = DeviceApi().find_setting() + location = DeviceApi().find_location() + if location: + city = location.get("city") + config["location"] = city["name"] + ", " + city["state"]["name"] + ", " + city["state"]["country"]["name"] RemoteConfiguration.__load(config, setting) except Exception as e: LOG.warn("Failed to fetch remote configuration: %s" % repr(e)) diff --git a/mycroft/skills/configuration/__init__.py b/mycroft/skills/configuration/__init__.py index f57b5de568..5100869e69 100644 --- a/mycroft/skills/configuration/__init__.py +++ b/mycroft/skills/configuration/__init__.py @@ -60,6 +60,10 @@ class ConfigurationSkill(ScheduledSkill): def update(self): config = self.api.find_setting() + location = DeviceApi().find_location() + if location: + city = location.get("city") + config["location"] = city["name"] + ", " + city["state"]["name"] + ", " + city["state"]["country"]["name"] self.emitter.emit(Message("configuration.updated", config)) def __api_error(self, e):