Split MessageChanged into MessageEdited and MessageDeleted

This commit is contained in:
Lonami Exo 2018-03-03 23:23:14 +01:00
parent 854c42b7ef
commit c40a3ca77c

View File

@ -829,21 +829,32 @@ class UserUpdate(_EventBuilder):
return self.chat return self.chat
class MessageChanged(_EventBuilder): class MessageEdited(NewMessage):
""" """
Represents a message changed (edited or deleted). Event fired when a message has been edited.
""" """
def build(self, update): def build(self, update):
if isinstance(update, (types.UpdateEditMessage, if isinstance(update, (types.UpdateEditMessage,
types.UpdateEditChannelMessage)): types.UpdateEditChannelMessage)):
event = MessageChanged.Event(edit_msg=update.message) event = MessageEdited.Event(update.message)
elif isinstance(update, types.UpdateDeleteMessages): else:
event = MessageChanged.Event( return
return self._filter_event(event)
class MessageDeleted(_EventBuilder):
"""
Event fired when one or more messages are deleted.
"""
def build(self, update):
if isinstance(update, types.UpdateDeleteMessages):
event = MessageDeleted.Event(
deleted_ids=update.messages, deleted_ids=update.messages,
peer=None peer=None
) )
elif isinstance(update, types.UpdateDeleteChannelMessages): elif isinstance(update, types.UpdateDeleteChannelMessages):
event = MessageChanged.Event( event = MessageDeleted.Event(
deleted_ids=update.messages, deleted_ids=update.messages,
peer=types.PeerChannel(update.channel_id) peer=types.PeerChannel(update.channel_id)
) )
@ -852,33 +863,13 @@ class MessageChanged(_EventBuilder):
return self._filter_event(event) return self._filter_event(event)
class Event(NewMessage.Event): class Event(_EventCommon):
""" def __init__(self, deleted_ids, peer):
Represents the event of an user status update (last seen, joined). super().__init__(
types.Message((deleted_ids or [0])[0], peer, None, '')
Please note that the ``message`` member will be ``None`` if the )
action was a deletion and not an edit. self.deleted_id = None if not deleted_ids else deleted_ids[0]
self.deleted_ids = self.deleted_ids
Members:
edited (:obj:`bool`):
``True`` if the message was edited.
deleted (:obj:`bool`):
``True`` if the message IDs were deleted.
deleted_ids (:obj:`List[int]`):
A list containing the IDs of the messages that were deleted.
"""
def __init__(self, edit_msg=None, deleted_ids=None, peer=None):
if edit_msg is None:
msg = types.Message((deleted_ids or [0])[0], peer, None, '')
else:
msg = edit_msg
super().__init__(msg)
self.edited = bool(edit_msg)
self.deleted = bool(deleted_ids)
self.deleted_ids = deleted_ids or []
class StopPropagation(Exception): class StopPropagation(Exception):