diff options
Diffstat (limited to 'modules/responses/response_handler.py')
-rw-r--r-- | modules/responses/response_handler.py | 35 |
1 files changed, 5 insertions, 30 deletions
diff --git a/modules/responses/response_handler.py b/modules/responses/response_handler.py index ee0acca..9cc0cf0 100644 --- a/modules/responses/response_handler.py +++ b/modules/responses/response_handler.py @@ -1,31 +1,6 @@ -import yaml +from abc import ABC, abstractmethod -from pathlib import Path - -from ..config import Config -from ..responses.responses import Responses -from ..hassil.util import merge_dict -from .libnotify import respond as respond_libnotify - -class ResponseHandler: - def __init__(self, config: Config): - response_dict = {"responses": {}} - - response_yaml_path = Path(config.responses_dir) - response_yaml_file_paths = response_yaml_path.glob("*.yaml") - for yaml_file_path in response_yaml_file_paths: - with open(yaml_file_path, "r", encoding="utf-8") as yaml_file: - merge_dict(response_dict, yaml.safe_load(yaml_file)) - - self.responses = Responses.from_dict(response_dict) - self.respond_methods = [respond_libnotify] - - def respond(self, response: str, intent_name: str): - response_key = intent_name if response == "default" else response - if response_key not in self.responses.responses: - print(f"No response found for: {response_key}") - return - - response_text = self.responses.responses[response_key].sentence_texts[0] - for respond_method in self.respond_methods: - respond_method(response_text) +class ResponseHandler(ABC): + @abstractmethod + def respond(self, response: str): + pass
\ No newline at end of file |