mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-02-02 20:54:43 +03:00
Make MessageChanged.Event inherit NewMessage.Event
This commit is contained in:
parent
b93e1b5f50
commit
89df481ae4
|
@ -814,86 +814,30 @@ class MessageChanged(_EventBuilder):
|
||||||
|
|
||||||
return self._filter_event(event)
|
return self._filter_event(event)
|
||||||
|
|
||||||
class Event(_EventCommon):
|
class Event(NewMessage.Event):
|
||||||
"""
|
"""
|
||||||
Represents the event of an user status update (last seen, joined).
|
Represents the event of an user status update (last seen, joined).
|
||||||
|
|
||||||
|
Please note that the ``message`` member will be ``None`` if the
|
||||||
|
action was a deletion and not an edit.
|
||||||
|
|
||||||
Members:
|
Members:
|
||||||
edited (:obj:`bool`):
|
edited (:obj:`bool`):
|
||||||
``True`` if the message was edited.
|
``True`` if the message was edited.
|
||||||
|
|
||||||
message (:obj:`Message`, optional):
|
|
||||||
The new edited message, if any.
|
|
||||||
|
|
||||||
deleted (:obj:`bool`):
|
deleted (:obj:`bool`):
|
||||||
``True`` if the message IDs were deleted.
|
``True`` if the message IDs were deleted.
|
||||||
|
|
||||||
deleted_ids (:obj:`List[int]`):
|
deleted_ids (:obj:`List[int]`):
|
||||||
A list containing the IDs of the messages that were deleted.
|
A list containing the IDs of the messages that were deleted.
|
||||||
|
|
||||||
input_sender (:obj:`InputPeer`):
|
|
||||||
This is the input version of the user who edited the message.
|
|
||||||
Similarly to ``input_chat``, this doesn't have things like
|
|
||||||
username or similar, but still useful in some cases.
|
|
||||||
|
|
||||||
Note that this might not be available if the library can't
|
|
||||||
find the input chat.
|
|
||||||
|
|
||||||
sender (:obj:`User`):
|
|
||||||
This property will make an API call the first time to get the
|
|
||||||
most up to date version of the sender, so use with care as
|
|
||||||
there is no caching besides local caching yet.
|
|
||||||
|
|
||||||
``input_sender`` needs to be available (often the case).
|
|
||||||
"""
|
"""
|
||||||
def __init__(self, edit_msg=None, deleted_ids=None, peer=None):
|
def __init__(self, edit_msg=None, deleted_ids=None, peer=None):
|
||||||
super().__init__(peer if not edit_msg else edit_msg.to_id)
|
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.edited = bool(edit_msg)
|
||||||
self.message = edit_msg
|
|
||||||
self.deleted = bool(deleted_ids)
|
self.deleted = bool(deleted_ids)
|
||||||
self.deleted_ids = deleted_ids or []
|
self.deleted_ids = deleted_ids or []
|
||||||
self._input_sender = None
|
|
||||||
self._sender = None
|
|
||||||
|
|
||||||
@property
|
|
||||||
def input_sender(self):
|
|
||||||
"""
|
|
||||||
This (:obj:`InputPeer`) is the input version of the user who
|
|
||||||
sent the message. Similarly to ``input_chat``, this doesn't have
|
|
||||||
things like username or similar, but still useful in some cases.
|
|
||||||
|
|
||||||
Note that this might not be available if the library can't
|
|
||||||
find the input chat, or if the message a broadcast on a channel.
|
|
||||||
"""
|
|
||||||
# TODO Code duplication
|
|
||||||
if self._input_sender is None:
|
|
||||||
if self.is_channel and not self.is_group:
|
|
||||||
return None
|
|
||||||
|
|
||||||
try:
|
|
||||||
self._input_sender = self._client.get_input_entity(
|
|
||||||
self.message.from_id
|
|
||||||
)
|
|
||||||
except (ValueError, TypeError):
|
|
||||||
# We can rely on self.input_chat for this
|
|
||||||
self._input_sender = self._get_input_entity(
|
|
||||||
self.message.id,
|
|
||||||
self.message.from_id,
|
|
||||||
chat=self.input_chat
|
|
||||||
)
|
|
||||||
|
|
||||||
return self._input_sender
|
|
||||||
|
|
||||||
@property
|
|
||||||
def sender(self):
|
|
||||||
"""
|
|
||||||
This (:obj:`User`) will make an API call the first time to get
|
|
||||||
the most up to date version of the sender, so use with care as
|
|
||||||
there is no caching besides local caching yet.
|
|
||||||
|
|
||||||
``input_sender`` needs to be available (often the case).
|
|
||||||
"""
|
|
||||||
if self._sender is None and self.input_sender:
|
|
||||||
self._sender = self._client.get_entity(self._input_sender)
|
|
||||||
return self._sender
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user