diff --git a/telethon/tl/custom/message.py b/telethon/tl/custom/message.py index df965b52..7ebc00a5 100644 --- a/telethon/tl/custom/message.py +++ b/telethon/tl/custom/message.py @@ -185,6 +185,10 @@ class Message(ChatGetter, SenderGetter, TLObject, abc.ABC): else: self._chat_peer = to_id + if post and not from_id and self._chat_peer: + # If the message comes from a Channel, let the sender be it + self._sender_id = utils.get_peer_id(self._chat_peer) + self._broadcast = post self._chat = None self._input_chat = None diff --git a/telethon/tl/custom/sendergetter.py b/telethon/tl/custom/sendergetter.py index a0359550..0f70d3f2 100644 --- a/telethon/tl/custom/sendergetter.py +++ b/telethon/tl/custom/sendergetter.py @@ -14,8 +14,8 @@ class SenderGetter(abc.ABC): @property def sender(self): """ - Returns the :tl:`User` that created this object. It may be ``None`` - if the object has no sender or if Telegram didn't send the sender. + Returns the :tl:`User` or :tl:`Channel` that sent this object. + It may be ``None`` if Telegram didn't send the sender. If you're using `telethon.events`, use `get_sender` instead. """ @@ -37,7 +37,7 @@ class SenderGetter(abc.ABC): @property def input_sender(self): """ - This :tl:`InputPeer` is the input version of the user who + This :tl:`InputPeer` is the input version of the user/channel who sent the message. Similarly to `input_chat`, this doesn't have things like username or similar, but still useful in some cases.