From 997f2b62ce846eafcb1d8e76481429ab1dafadde Mon Sep 17 00:00:00 2001 From: Lonami Exo Date: Sun, 3 Jun 2018 16:41:13 +0200 Subject: [PATCH] Fix EventCommon/custom.Message conflicting properties --- telethon/events/common.py | 1 - telethon/events/newmessage.py | 16 ++++------------ 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/telethon/events/common.py b/telethon/events/common.py index e5ecd60f..5a014c1f 100644 --- a/telethon/events/common.py +++ b/telethon/events/common.py @@ -151,7 +151,6 @@ class EventCommon(abc.ABC): Note that this might be ``None`` if the library can't find it. """ - if self._input_chat is None and self._chat_peer is not None: try: self._input_chat = self._client.get_input_entity( diff --git a/telethon/events/newmessage.py b/telethon/events/newmessage.py index 39717eba..38518b77 100644 --- a/telethon/events/newmessage.py +++ b/telethon/events/newmessage.py @@ -129,8 +129,7 @@ class NewMessage(EventBuilder): available members and methods. """ def __init__(self, message): - # Having to override __setattr__ makes things... complicated - self.__dict__['_init'] = False + self.__dict__ = message.__dict__ if not message.out and isinstance(message.to_id, types.PeerUser): # Incoming message (e.g. from a bot) has to_id=us, and # from_id=bot (the actual "chat" from an user's perspective). @@ -145,15 +144,8 @@ class NewMessage(EventBuilder): def _set_client(self, client): super()._set_client(client) + # Note that this new message also shares the same __dict__. + # By treating everything as the same message it simplifies + # the mess that would otherwise be using get/setattr. self.message = custom.Message( client, self.message, self._entities, None) - self._init = True - - def __getattr__(self, item): - return getattr(self.message, item) - - def __setattr__(self, name, value): - if self._init: - setattr(self.__dict__['message'], name, value) - else: - super().__setattr__(name, value)