Skip to content

Commit

Permalink
Continue OVOS migration
Browse files Browse the repository at this point in the history
  • Loading branch information
goldyfruit committed Mar 19, 2024
1 parent bb36677 commit 6c7f471
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 27 deletions.
10 changes: 5 additions & 5 deletions setup.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

51 changes: 29 additions & 22 deletions skill_mm_wakeword/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
"""Open Voice OS and MagicMirror skill integration"""

import json
import requests

Expand All @@ -7,25 +9,48 @@


class MagicMirrorWakeWord(OVOSSkill):
"""This is the place where all the magic happens for the MagicMirror
wake word skill.
"""

def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)

self.configured = False
# Initialize variables with empty or None values.
self.headers = {}

# Make sure skill is configured when loaded.
self.setup()

def http_endpoint(self, payload):
"""Handle HTTP request to the MagicMirror endpoint."""
try:
requests.post(
url=self.settings.get("url") + "/ovos",
data=json.dumps(payload),
headers=self.headers,
verify=self.settings.get("verify", False),
timeout=self.settings.get("timeout", 10),
)
except requests.exceptions.RequestException as err:
LOG.error(err)

def setup(self):
"""Check for settings requirements and prepare HTTP headers once
configured."""

if not self.settings.get("url") or not self.settings.get("key"):
self.speak_dialog("error_setup", data={"fields": "address or key"})
LOG.warning("MagicMirror address or API key not defined")
else:
self.configured = True
self.headers["Content-Type"] = "application/json"
self.headers["X-Api-Key"] = self.settings.get("key")
LOG.info("MagicMirror address: %s", self.settings.get("url"))

def initialize(self):
"""The initialize method is called after the Skill is fully
constructed and registered with the system.
"""
self.add_event("recognizer_loop:record_begin", self.handle_listener_started)
self.add_event("recognizer_loop:record_end", self.handle_listener_ended)

Expand All @@ -34,29 +59,11 @@ def handle_listener_started(
): # pylint: disable=unused-argument
"""Handle the record_begin event detection."""
payload = {"notification": "OVOS_SEND_MESSAGE", "payload": "Listening"}
try:
requests.post(
url=self.settings.get("url") + "/ovos",
data=json.dumps(payload),
headers=self.headers,
verify=self.settings.get("verify", False),
timeout=self.settings.get("timeout", 10),
)
except requests.exceptions.RequestException as err:
LOG.error(err)
self.http_endpoint(payload)

def handle_listener_ended(
self, message: Message
): # pylint: disable=unused-argument
"""Handle the record_end event detection."""
payload = {"notification": "OVOS_DELETE_MESSAGE", "payload": "delete"}
try:
requests.post(
url=self.settings.get("url") + "/ovos",
data=json.dumps(payload),
headers=self.headers,
verify=self.settings.get("verify", False),
timeout=self.settings.get("timeout", 10),
)
except requests.exceptions.RequestException as err:
LOG.error(err)
self.http_endpoint(payload)

0 comments on commit 6c7f471

Please sign in to comment.