diff --git a/ovos_PHAL_plugin_discord_bot/__init__.py b/ovos_PHAL_plugin_discord_bot/__init__.py index f732e7b..fd52d89 100644 --- a/ovos_PHAL_plugin_discord_bot/__init__.py +++ b/ovos_PHAL_plugin_discord_bot/__init__.py @@ -1,21 +1,26 @@ import requests - +import discord +import json +from discord.ext import commands, tasks from ovos_plugin_manager.phal import PHALPlugin from ovos_config.config import LocalConf +from ovos_config.config import update_mycroft_config from ovos_config.locations import get_webcache_location from ovos_bus_client.util import get_mycroft_bus from ovos_utils.messagebus import Message from ovos_utils.log import LOG from ovos_utils import classproperty from ovos_utils.process_utils import RuntimeRequirements +from json_database import JsonConfigXDG class DiscordBotPlugin(PHALPlugin): def __init__(self, bus=None, config=None): super().__init__(bus, "ovos-PHAL-plugin-discord-bot", config) - self.web_config = LocalConf(get_webcache_location()) + #self.web_config = LocalConf(get_webcache_location()) self.bus.on("mycroft.internet.connected", self.on_reset) self.bus.on("recognizer_loop:utterance", self.on_utterance) + self.bus.on("configuration.updated", self.init_configuration) @classproperty def runtime_requirements(self): @@ -35,6 +40,29 @@ class DiscordBotPlugin(PHALPlugin): def on_speak(self, message=None): LOG.info(f"On speak triggered: %s", message.serialize()) - + def init_configuration(self, message=None): + """ Initialize instance configuration """ + configuration_host = self.config.get("host", "") + configuration_api_key = self.config.get("api_key", "") + configuration_admin_id = self.config.get("admin_id", "") + config = {"host": configuration_host, "api_key": configuration_api_key, "admin_id": configuration_admin_id } + config_json = json.dumps(config) + LOG.info(f"Configuration updated: %s", config_json) + + if not configuration_host: + uninitialized_settings.append("host") + + if not configuration_api_key: + uninitialized_settings.append("api_key") + + if not configuration_admin_id: + uninitialized_settings.append("admin_id") + + if uninitialized_settings: + self.bus.emit(Message("ovos.phal.plugin.discord_bot.requires.configuration")) + message = "The following configuration settings are uninitialized: " + ", ".join(uninitialized_settings) + LOG.info(message) + else: + LOG.info("All configuration settings are initialized.")