mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-06-17 18:46:40 +00:00
Load entities for new via_bot property and forward
This commit is contained in:
parent
39d9531483
commit
a59f53d592
@ -211,8 +211,24 @@ class NewMessage(EventBuilder):
|
|||||||
m = self.message
|
m = self.message
|
||||||
m._chat, m._input_chat = self._get_entity_pair(m.chat_id)
|
m._chat, m._input_chat = self._get_entity_pair(m.chat_id)
|
||||||
m._sender, m._input_sender = self._get_entity_pair(m.sender_id)
|
m._sender, m._input_sender = self._get_entity_pair(m.sender_id)
|
||||||
return m._input_chat is not None and (
|
m._via_bot, m._via_input_bot = self._get_entity_pair(m.via_bot_id)
|
||||||
not m.sender_id or m._input_sender is not None)
|
if not m.forward:
|
||||||
|
forward_ok = True
|
||||||
|
else:
|
||||||
|
f = m.forward
|
||||||
|
f._chat, f._input_chat = self._get_entity_pair(f.chat_id)
|
||||||
|
f._sender, f._input_sender = self._get_entity_pair(f.sender_id)
|
||||||
|
forward_ok = (
|
||||||
|
(not f.chat_id or f._input_chat is not None)
|
||||||
|
and (not f.sender_id or f._input_sender is not None)
|
||||||
|
)
|
||||||
|
|
||||||
|
return (
|
||||||
|
m._input_chat is not None
|
||||||
|
and (not m.sender_id or m._input_sender is not None)
|
||||||
|
and (not m.via_bot_id or m._via_input_bot is not None)
|
||||||
|
and forward_ok
|
||||||
|
)
|
||||||
|
|
||||||
def __getattr__(self, item):
|
def __getattr__(self, item):
|
||||||
if item in self.__dict__:
|
if item in self.__dict__:
|
||||||
|
@ -183,6 +183,8 @@ class Message(ChatGetter, SenderGetter, TLObject, abc.ABC):
|
|||||||
self._sender_id = from_id
|
self._sender_id = from_id
|
||||||
self._sender = None
|
self._sender = None
|
||||||
self._input_sender = None
|
self._input_sender = None
|
||||||
|
self._via_bot = None
|
||||||
|
self._via_input_bot = None
|
||||||
self._action_entities = None
|
self._action_entities = None
|
||||||
|
|
||||||
if not out and isinstance(to_id, types.PeerUser):
|
if not out and isinstance(to_id, types.PeerUser):
|
||||||
@ -223,6 +225,13 @@ class Message(ChatGetter, SenderGetter, TLObject, abc.ABC):
|
|||||||
except TypeError:
|
except TypeError:
|
||||||
self._input_chat = None
|
self._input_chat = None
|
||||||
|
|
||||||
|
self._via_bot = entities.get(self.via_bot_id)
|
||||||
|
if self._via_bot:
|
||||||
|
try:
|
||||||
|
self._via_input_bot = utils.get_input_peer(self._via_bot)
|
||||||
|
except TypeError:
|
||||||
|
self._via_input_bot = None
|
||||||
|
|
||||||
if self.fwd_from:
|
if self.fwd_from:
|
||||||
self._forward = Forward(self._client, self.fwd_from, entities)
|
self._forward = Forward(self._client, self.fwd_from, entities)
|
||||||
|
|
||||||
@ -530,6 +539,24 @@ class Message(ChatGetter, SenderGetter, TLObject, abc.ABC):
|
|||||||
"""
|
"""
|
||||||
return self._action_entities
|
return self._action_entities
|
||||||
|
|
||||||
|
@property
|
||||||
|
def via_bot(self):
|
||||||
|
"""
|
||||||
|
If this message was sent via some bot (i.e. `via_bot_id` is not
|
||||||
|
``None``), this property returns the :tl:`User` of the bot that
|
||||||
|
was used to send this message.
|
||||||
|
|
||||||
|
Returns ``None`` otherwise (or if the bot entity is unknown).
|
||||||
|
"""
|
||||||
|
return self._via_bot
|
||||||
|
|
||||||
|
@property
|
||||||
|
def via_input_bot(self):
|
||||||
|
"""
|
||||||
|
Returns the input variant of `via_bot`.
|
||||||
|
"""
|
||||||
|
return self._via_input_bot
|
||||||
|
|
||||||
# endregion Public Properties
|
# endregion Public Properties
|
||||||
|
|
||||||
# region Public Methods
|
# region Public Methods
|
||||||
@ -779,7 +806,6 @@ class Message(ChatGetter, SenderGetter, TLObject, abc.ABC):
|
|||||||
|
|
||||||
# region Private Methods
|
# region Private Methods
|
||||||
|
|
||||||
# TODO Make a property for via_bot and via_input_bot, as well as get_*
|
|
||||||
async def _reload_message(self):
|
async def _reload_message(self):
|
||||||
"""
|
"""
|
||||||
Re-fetches this message to reload the sender and chat entities,
|
Re-fetches this message to reload the sender and chat entities,
|
||||||
@ -797,6 +823,9 @@ class Message(ChatGetter, SenderGetter, TLObject, abc.ABC):
|
|||||||
self._input_sender = msg._input_sender
|
self._input_sender = msg._input_sender
|
||||||
self._chat = msg._chat
|
self._chat = msg._chat
|
||||||
self._input_chat = msg._input_chat
|
self._input_chat = msg._input_chat
|
||||||
|
self._via_bot = msg._via_bot
|
||||||
|
self._via_input_bot = msg._via_input_bot
|
||||||
|
self._forward = msg._forward
|
||||||
self._action_entities = msg._action_entities
|
self._action_entities = msg._action_entities
|
||||||
|
|
||||||
async def _refetch_sender(self):
|
async def _refetch_sender(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user