From cb40a2ff74a8165cb59357c423f83219a01631bc Mon Sep 17 00:00:00 2001
From: Botond Hende <nettingman@gmail.com>
Date: Wed, 27 Nov 2024 23:59:07 +0100
Subject: basic responses

---
 __main__.py                              |  9 +++++++--
 modules/responses/libnotify.py           |  4 ++++
 modules/responses/responses.py           | 16 ++++------------
 responses/process_HesExecuteProcess.yaml |  5 ++---
 4 files changed, 17 insertions(+), 17 deletions(-)
 create mode 100644 modules/responses/libnotify.py

diff --git a/__main__.py b/__main__.py
index ab4f59c..0e8a1ec 100644
--- a/__main__.py
+++ b/__main__.py
@@ -13,12 +13,15 @@ from modules.responses.responses import Responses
 from .modules.input_handlers.stdin_input import StdinInput
 from .modules.input_handlers.pipewire_record import PipeWireRecord
 
+from .modules.responses.libnotify import respond
+
 from .modules.intents import *
 
 
 def main():
     config = load_config()
     input_dict = {"intents": {}}
+    response_dict = {"responses": {}}
 
     intent_yaml_path = Path(config.intents_dir)
     intent_yaml_file_paths = intent_yaml_path.glob("*.yaml")
@@ -32,9 +35,9 @@ def main():
     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(input_dict, yaml.safe_load(yaml_file))
+            merge_dict(response_dict, yaml.safe_load(yaml_file))
 
-    responses = Responses.from_dict(input_dict)
+    responses = Responses.from_dict(response_dict)
     
     processes = []
     for file in os.listdir(config.applications_dir):
@@ -63,6 +66,8 @@ def main():
                 print(result_dict)
                 handler = getattr(globals()[result_dict["domain"]], result_dict["intent"])
                 handler(result_dict, config)
+                if result.response != "default":
+                    respond(responses.responses[result.intent.name].sentence_texts[0])
             else:
                 print("<no match>")
     finally:
diff --git a/modules/responses/libnotify.py b/modules/responses/libnotify.py
new file mode 100644
index 0000000..2e83101
--- /dev/null
+++ b/modules/responses/libnotify.py
@@ -0,0 +1,4 @@
+import os
+
+def respond(text: str) -> None:
+    os.popen(f'notify-send Hestia "{text}" --app-name=hestia')
\ No newline at end of file
diff --git a/modules/responses/responses.py b/modules/responses/responses.py
index 1836deb..f89a1fe 100644
--- a/modules/responses/responses.py
+++ b/modules/responses/responses.py
@@ -1,14 +1,10 @@
 from dataclasses import dataclass, field
 from typing import List, Dict, Any
 
-@dataclass(frozen=True)
-class ResponseData:
-    sentence_texts: List[str]
-
 @dataclass(frozen=True)
 class Response:
     name: str
-    data: List[ResponseData] = field(default_factory=list)
+    sentence_texts: List[str]
 
 @dataclass(frozen=True)
 class Responses:
@@ -25,13 +21,9 @@ class Responses:
             responses={
                 response_name: Response(
                     name=response_name,
-                    data=[
-                        ResponseData(
-                            sentence_texts=data_dict["sentences"],
-                        )
-                        for data_dict in response_dict["data"]
-                    ],
+                    sentence_texts=response_dict["sentences"]
                 )
                 for response_name, response_dict in input_dict["responses"].items()
             },
-        )
\ No newline at end of file
+        )
+
diff --git a/responses/process_HesExecuteProcess.yaml b/responses/process_HesExecuteProcess.yaml
index 66653c2..31646ff 100644
--- a/responses/process_HesExecuteProcess.yaml
+++ b/responses/process_HesExecuteProcess.yaml
@@ -1,5 +1,4 @@
 responses:
   HesExecuteProcess:
-    data:
-      - sentences:
-          "Right away."
\ No newline at end of file
+    sentences:
+      - "Starting it now."
\ No newline at end of file
-- 
cgit v1.2.3-70-g09d2