Handling assistant no_response events

This commit is contained in:
Fabio Manganiello 2018-05-25 18:26:02 +02:00
parent 4f75b765b1
commit c1caa182be
2 changed files with 9 additions and 1 deletions

View file

@ -12,7 +12,8 @@ from google.assistant.library.file_helpers import existing_file
from platypush.backend import Backend
from platypush.message.event.assistant import \
ConversationStartEvent, ConversationEndEvent, ConversationTimeoutEvent, SpeechRecognizedEvent
ConversationStartEvent, ConversationEndEvent, ConversationTimeoutEvent, \
NoResponseEvent, SpeechRecognizedEvent
class AssistantGoogleBackend(Backend):
""" Class for the Google Assistant backend. It creates and event source
@ -48,6 +49,8 @@ class AssistantGoogleBackend(Backend):
self.bus.post(ConversationEndEvent())
elif event.type == EventType.ON_CONVERSATION_TURN_TIMEOUT:
self.bus.post(ConversationTimeoutEvent())
elif event.type == EventType.ON_NO_RESPONSE:
self.bus.post(NoResponseEvent())
elif event.type == EventType.ON_RECOGNIZING_SPEECH_FINISHED:
phrase = event.args['text'].lower().strip()
logging.info('Speech recognized: {}'.format(phrase))

View file

@ -34,6 +34,11 @@ class ConversationTimeoutEvent(ConversationEndEvent):
super().__init__(*args, **kwargs)
class NoResponseEvent(ConversationEndEvent):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
class SpeechRecognizedEvent(AssistantEvent):
def __init__(self, phrase, *args, **kwargs):
super().__init__(phrase=phrase, *args, **kwargs)