From 44810372cd3d5767f9e00a1be5a5100b645b4ada Mon Sep 17 00:00:00 2001 From: REDNBLACK Date: Fri, 18 Aug 2017 02:01:08 +0300 Subject: [PATCH] Empty message null pointer bugfix --- src/domain/message.py | 2 +- src/handler/message_handler.py | 2 ++ src/service/reply_generator.py | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/domain/message.py b/src/domain/message.py index 5828d7e..ac0c686 100644 --- a/src/domain/message.py +++ b/src/domain/message.py @@ -24,7 +24,7 @@ class Message(AbstractEntity): """ Returns True if the message has text. """ - return self.message.text.strip() != '' + return self.message.text is not None and self.message.text.strip() != '' def is_sticker(self): """ diff --git a/src/handler/message_handler.py b/src/handler/message_handler.py index 239f899..3f2f3ae 100644 --- a/src/handler/message_handler.py +++ b/src/handler/message_handler.py @@ -59,6 +59,8 @@ class MessageHandler(ParentHandler): if should_answer: text = self.reply_generator.generate(message) + if text is None: + return reply_id = None if not message.is_reply_to_bot() else message.message.message_id logging.debug("[Chat %s %s answer/reply] %s" % diff --git a/src/service/reply_generator.py b/src/service/reply_generator.py index 0199267..75f2fb3 100644 --- a/src/service/reply_generator.py +++ b/src/service/reply_generator.py @@ -27,10 +27,10 @@ class ReplyGenerator: words = self.tokenizer.extract_words(message) pairs = [trigram[:-1] for trigram in self.tokenizer.split_to_trigrams(words)] messages = [self.__generate_best_message(chat_id=message.chat_id, pair=pair) for pair in pairs] - longest_message = max(messages, key=len) if len(messages) else '' + longest_message = max(messages, key=len) if len(messages) else None if longest_message and strings_has_equal_letters(longest_message, ''.join(words)): - return '' + return None return longest_message