messenger fixes, refactoring (history)

This commit is contained in:
ingvar1995 2018-05-01 21:40:29 +03:00
parent 6ebafbda44
commit ad351030d9
9 changed files with 150 additions and 135 deletions

View file

@ -38,6 +38,11 @@ class Message:
author = property(get_author)
def get_time(self):
return self._time
time = property(get_time)
def get_message_id(self):
return self._message_id
@ -70,6 +75,11 @@ class TextMessage(Message):
super().__init__(id, message_type, owner, time)
self._message = message
def get_text(self):
return self._message
text = property(get_text)
def get_data(self):
return self._message, self._owner, self._time, self._type

View file

@ -5,19 +5,21 @@ from messenger.messages import *
class Messenger(util.ToxSave):
def __init__(self, tox, plugin_loader, screen, contacts_manager, contacts_provider):
def __init__(self, tox, plugin_loader, screen, contacts_manager, contacts_provider, items_factory):
super().__init__(tox)
self._plugin_loader = plugin_loader
self._screen = screen
self._contacts_manager = contacts_manager
self._contacts_provider = contacts_provider
self._items_factory = items_factory
# -----------------------------------------------------------------------------------------------------------------
# Private methods
# -----------------------------------------------------------------------------------------------------------------
def _create_message_item(self):
pass
def _create_message_item(self, text_message):
# pixmap = self._contacts_manager.get_curr_contact().get_pixmap()
self._items_factory.message_item(text_message)
# -----------------------------------------------------------------------------------------------------------------
# Messaging
@ -66,17 +68,20 @@ class Messenger(util.ToxSave):
else:
message_type = TOX_MESSAGE_TYPE['NORMAL']
friend = self.get_friend_by_number(friend_number)
friend.inc_receipts()
if friend.status is not None:
messages = self._split_message(text.encode('utf-8'))
t = util.get_unix_time()
for message in messages:
messages = self._split_message(text.encode('utf-8'))
t = util.get_unix_time()
for message in messages:
if friend.status is not None:
message_id = self._tox.friend_send_message(friend_number, message_type, message)
friend.append_message(TextMessage(message_id, text, MESSAGE_AUTHOR['NOT_SENT'], t, message_type))
if self._contacts_manager.is_friend_active(friend_number):
self.create_message_item(text, t, MESSAGE_AUTHOR['NOT_SENT'], message_type)
self._screen.messageEdit.clear()
self._screen.messages.scrollToBottom()
friend.inc_receipts()
else:
message_id = 0
message = TextMessage(message_id, text, MESSAGE_AUTHOR['NOT_SENT'], t, message_type)
friend.append_message(message)
if self._contacts_manager.is_friend_active(friend_number):
self._create_message_item(message)
self._screen.messageEdit.clear()
self._screen.messages.scrollToBottom()
# -----------------------------------------------------------------------------------------------------------------
# Typing notifications
@ -121,6 +126,8 @@ class Messenger(util.ToxSave):
index += size + 1
messages.append(message[:index])
message = message[index:]
if message:
messages.append(message)
return messages