def __init__(self, sender: SenderLogic, detect: DetectLogic, context: ContextLogic, suggest: SuggestLogic): self.sender = sender self.detect = detect self.context = context self.suggest = suggest self.context_responder = ContextResponder(sender)
class NewMessageText(MessageHandler): logger = logging.getLogger(__name__) logger.setLevel(LOGGING_LEVEL) def __init__(self, sender: SenderLogic, detect: DetectLogic, context: ContextLogic, suggest: SuggestLogic): self.sender = sender self.detect = detect self.context = context self.suggest = suggest self.context_responder = ContextResponder(sender) def on_new_message_text(self, handler: WebSocketHandler, message: dict, new_message_text): self.detect.post_detect( handler.user_id, handler.application_id, handler.session_id, handler.locale, new_message_text, lambda response: self.post_detect_callback(response, handler, message) ) def post_detect_callback(self, response, handler: WebSocketHandler, message: dict): self.logger.debug("post_detect_callback") self.detect.get_detect( response.headers["Location"], lambda res: self.get_detect_callback(res, handler, message) ) def get_detect_callback(self, response, handler_callback: WebSocketHandler, message: dict): self.logger.debug("get_detect_callback") detection_response = self.json_decode(response.body) self.context.post_context_message( handler_callback.context_id, 1, message["message_text"] if "message_text" in message else "", callback=lambda res: self.post_context_message_callback(res, handler_callback, message), detection=detection_response ) detection_chat_response = self.detect.respond_to_detection_response(handler_callback, detection_response) if detection_chat_response is not None: self.sender.write_jemboo_response_message(handler_callback, detection_chat_response) def post_context_message_callback(self, response, handler_callback: WebSocketHandler, message: dict): self.logger.debug("post_context_message_callback") self.context.get_context( handler_callback, lambda res: self.get_context_callback(res, handler_callback, message) ) def get_context_callback(self, response, handler: WebSocketHandler, message: dict): self.logger.debug("get_context_callback") handler.context = self.json_decode(response.body) handler.context_rev = handler.context["_rev"] self.context_responder.unsupported_entities(handler, handler.context) self.suggest.post_suggest( handler.user_id, handler.application_id, handler.session_id, handler.locale, handler.context, callback=lambda res: self.post_suggest_callback(res, handler, message) ) def post_suggest_callback(self, response, handler: WebSocketHandler, message: dict): self.logger.debug("post_suggest_callback") handler.suggest_id = response.headers["_id"] self.suggest.write_new_suggestion(handler)
class NewMessageText(MessageHandler): logger = logging.getLogger(__name__) logger.setLevel(LOGGING_LEVEL) def __init__(self, sender: SenderLogic, detect: DetectLogic, context: ContextLogic, suggest: SuggestLogic): self.sender = sender self.detect = detect self.context = context self.suggest = suggest self.context_responder = ContextResponder(sender) def on_new_message_text(self, handler: WebSocketHandler, message: dict, new_message_text): self.detect.post_detect( handler.user_id, handler.application_id, handler.session_id, handler.locale, new_message_text, lambda response: self.post_detect_callback( response, handler, message)) def post_detect_callback(self, response, handler: WebSocketHandler, message: dict): self.logger.debug("post_detect_callback") self.detect.get_detect( response.headers["Location"], lambda res: self.get_detect_callback(res, handler, message)) def get_detect_callback(self, response, handler_callback: WebSocketHandler, message: dict): self.logger.debug("get_detect_callback") detection_response = self.json_decode(response.body) self.context.post_context_message( handler_callback.context_id, 1, message["message_text"] if "message_text" in message else "", callback=lambda res: self.post_context_message_callback( res, handler_callback, message), detection=detection_response) detection_chat_response = self.detect.respond_to_detection_response( handler_callback, detection_response) if detection_chat_response is not None: self.sender.write_jemboo_response_message(handler_callback, detection_chat_response) def post_context_message_callback(self, response, handler_callback: WebSocketHandler, message: dict): self.logger.debug("post_context_message_callback") self.context.get_context( handler_callback, lambda res: self.get_context_callback( res, handler_callback, message)) def get_context_callback(self, response, handler: WebSocketHandler, message: dict): self.logger.debug("get_context_callback") handler.context = self.json_decode(response.body) handler.context_rev = handler.context["_rev"] self.context_responder.unsupported_entities(handler, handler.context) self.suggest.post_suggest(handler.user_id, handler.application_id, handler.session_id, handler.locale, handler.context, callback=lambda res: self. post_suggest_callback(res, handler, message)) def post_suggest_callback(self, response, handler: WebSocketHandler, message: dict): self.logger.debug("post_suggest_callback") handler.suggest_id = response.headers["_id"] self.suggest.write_new_suggestion(handler)