toxygen/src/messages.py

93 lines
2.1 KiB
Python
Raw Normal View History

2016-03-29 12:54:58 +00:00
MESSAGE_TYPE = {
'TEXT': 0,
'ACTION': 1,
'FILE_TRANSFER': 2,
'INLINE': 3
}
FILE_TRANSFER_MESSAGE_STATUS = {
'FINISHED': 0,
'CANCELLED': 1,
'OUTGOING': 2,
'INCOMING_NOT_STARTED': 3,
'INCOMING_STARTED': 4,
'PAUSED_BY_FRIEND': 5,
'PAUSED_BY_USER': 6
2016-03-29 12:54:58 +00:00
}
class Message(object):
def __init__(self, message_type, owner, time):
self._time = time
self._type = message_type
self._owner = owner
def get_type(self):
return self._type
def get_owner(self):
return self._owner
2016-06-04 19:17:32 +00:00
def mark_as_sent(self):
self._owner = 0
2016-03-29 12:54:58 +00:00
class TextMessage(Message):
2016-03-30 18:05:21 +00:00
"""
Plain text or action message
"""
2016-03-29 12:54:58 +00:00
def __init__(self, message, owner, time, message_type):
super(TextMessage, self).__init__(message_type, owner, time)
self._message = message
def get_data(self):
return self._message, self._owner, self._time, self._type
class TransferMessage(Message):
2016-03-30 18:05:21 +00:00
"""
Message with info about file transfer
"""
2016-03-29 12:54:58 +00:00
def __init__(self, owner, time, status, size, name, friend_number, file_number):
super(TransferMessage, self).__init__(MESSAGE_TYPE['FILE_TRANSFER'], owner, time)
self._status = status
self._size = size
self._file_name = name
self._friend_number, self._file_number = friend_number, file_number
def is_active(self, file_number):
return self._file_number == file_number and self._status > 1
def get_friend_number(self):
return self._friend_number
def get_file_number(self):
return self._file_number
def get_status(self):
return self._status
def set_status(self, value):
self._status = value
def get_data(self):
return self._file_name, self._size, self._time, self._owner, self._friend_number, self._file_number, self._status
class InlineImage(Message):
2016-03-30 18:05:21 +00:00
"""
Inline image
"""
2016-03-29 12:54:58 +00:00
2016-04-13 21:46:28 +00:00
def __init__(self, data):
super(InlineImage, self).__init__(MESSAGE_TYPE['INLINE'], None, None)
2016-03-29 12:54:58 +00:00
self._data = data
def get_data(self):
return self._data