From 9eacf3f79c42f32160f1e291d20b3c4f56b6622d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Wed, 27 Jun 2018 15:48:32 +0200 Subject: [PATCH] Add message queueing capabilities to MessageSender --- lib/tfw/networking/message_sender.py | 30 ++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/lib/tfw/networking/message_sender.py b/lib/tfw/networking/message_sender.py index 2210d0a..58856b1 100644 --- a/lib/tfw/networking/message_sender.py +++ b/lib/tfw/networking/message_sender.py @@ -1,32 +1,46 @@ # Copyright (C) 2018 Avatao.com Innovative Learning Kft. # All Rights Reserved. See LICENSE file for details. -from datetime import datetime - from tfw.networking.event_handlers import ServerUplinkConnector class MessageSender: """ - Provides a mechanism to send messages to our frontend messaging component which - displays messages with the key "message". + Provides mechanisms to send messages to our frontend messaging component. """ - def __init__(self, custom_key: str = None): + def __init__(self): self.server_connector = ServerUplinkConnector() - self.key = custom_key or 'message' + self.key = 'message' + self.queue_key = 'queueMessages' def send(self, originator, message): """ - Sends a message to the key specified in __init__. + Sends a message. :param originator: name of sender to be displayed on the frontend :param message: message to send """ data = { 'originator': originator, - 'timestamp': datetime.now().isoformat(), 'message': message } self.server_connector.send({ 'key': self.key, 'data': data }) + + def queue_messages(self, originator, messages): + """ + Queues a list of messages to be displayed in a chatbot-like manner. + :param originator: name of sender to be displayed on the frontend + :param messages: list of messages to queue + """ + data = { + 'messages': [ + {'message': message, 'originator': originator} + for message in messages + ] + } + self.server_connector.send({ + 'key': self.queue_key, + 'data': data + })