More cleanup, yey!
[python_utils.git] / google_assistant.py
index 0af4fa9271df3bf2e6de6f3571cfa6c2eb6d1f23..4a3a58f5947ab335e26ac2fa1c7ce22afd841a93 100644 (file)
@@ -1,9 +1,11 @@
 #!/usr/bin/env python3
 
 #!/usr/bin/env python3
 
+"""A module to serve as a local client library around HTTP calls to
+the Google Assistant via a local gateway."""
+
 import logging
 import logging
-import sys
-from typing import NamedTuple, Optional
 import warnings
 import warnings
+from typing import NamedTuple, Optional
 
 import requests
 import speech_recognition as sr  # type: ignore
 
 import requests
 import speech_recognition as sr  # type: ignore
@@ -33,6 +35,8 @@ parser.add_argument(
 
 
 class GoogleResponse(NamedTuple):
 
 
 class GoogleResponse(NamedTuple):
+    """A response wrapper."""
+
     success: bool
     response: str
     audio_url: str
     success: bool
     response: str
     audio_url: str
@@ -57,7 +61,7 @@ def ask_google(cmd: str, *, recognize_speech=True) -> GoogleResponse:
     is True, perform speech recognition on the audio response from Google so as
     to translate it into text (best effort, YMMV).
     """
     is True, perform speech recognition on the audio response from Google so as
     to translate it into text (best effort, YMMV).
     """
-    logging.debug(f"Asking google: '{cmd}'")
+    logging.debug("Asking google: '%s'", cmd)
     payload = {
         "command": cmd,
         "user": config.config['google_assistant_username'],
     payload = {
         "command": cmd,
         "user": config.config['google_assistant_username'],
@@ -70,12 +74,13 @@ def ask_google(cmd: str, *, recognize_speech=True) -> GoogleResponse:
     audio_transcription: Optional[str] = ""
     if r.status_code == 200:
         j = r.json()
     audio_transcription: Optional[str] = ""
     if r.status_code == 200:
         j = r.json()
+        logger.debug(j)
         success = bool(j["success"])
         response = j["response"] if success else j["error"]
         if success:
             logger.debug('Google request succeeded.')
             if len(response) > 0:
         success = bool(j["success"])
         response = j["response"] if success else j["error"]
         if success:
             logger.debug('Google request succeeded.')
             if len(response) > 0:
-                logger.debug(f"Google said: '{response}'")
+                logger.debug("Google said: '%s'", response)
         audio = f"{config.config['google_assistant_bridge']}{j['audio']}"
         if recognize_speech:
             recognizer = sr.Recognizer()
         audio = f"{config.config['google_assistant_bridge']}{j['audio']}"
         if recognize_speech:
             recognizer = sr.Recognizer()
@@ -91,7 +96,7 @@ def ask_google(cmd: str, *, recognize_speech=True) -> GoogleResponse:
                     audio_transcription = recognizer.recognize_google(
                         speech,
                     )
                     audio_transcription = recognizer.recognize_google(
                         speech,
                     )
-                    logger.debug(f"Transcription: '{audio_transcription}'")
+                    logger.debug("Transcription: '%s'", audio_transcription)
                 except sr.UnknownValueError as e:
                     logger.exception(e)
                     msg = 'Unable to parse Google assistant\'s response.'
                 except sr.UnknownValueError as e:
                     logger.exception(e)
                     msg = 'Unable to parse Google assistant\'s response.'
@@ -113,4 +118,3 @@ def ask_google(cmd: str, *, recognize_speech=True) -> GoogleResponse:
             audio_url=audio,
             audio_transcription=audio_transcription,
         )
             audio_url=audio,
             audio_transcription=audio_transcription,
         )
-        sys.exit(-1)