- def _filter_out_read(self, conversations):
- return (
- conversation
- for conversation in conversations
- if not conversation.isRead and not conversation.isArchived
- )
+ messages = [
+ (newMessage, newConversation)
+ for newConversation in newConversations
+ for newMessage in newConversation.messages
+ if not gvoice.conversations.is_message_from_self(newMessage)
+ ]
+ if not messages:
+ _moduleLogger.debug(
+ "How did this happen for %r?" % (self._contactKey, )
+ )
+ return
+
+ now = datetime.datetime.now()
+ for newMessage, conv in messages:
+ if self.OLDEST_MESSAGE_WINDOW < (now - conv.time):
+ _moduleLogger.warning("Why are we reporting a message that is so old?")
+ _moduleLogger.warning("\t%r %r (%r) with %r messages" % (conv.number, conv.id, conv.time, len(conv.messages)))
+ formattedMessage = self._format_message(newMessage)
+ self._report_new_message(formattedMessage, conv.time)
+
+ for conv in mergedConversations.conversations:
+ conv.isRead = True