From d60ebbe6eaa2b5bf74a7d13bc7e86c961fe8d889 Mon Sep 17 00:00:00 2001 From: Lonami Exo Date: Sun, 19 Sep 2021 17:21:11 +0200 Subject: [PATCH] Fix _get_peer was relying on old utils.resolve_id --- telethon/_client/messages.py | 12 ++++++++++-- telethon/_client/telegramclient.py | 3 --- telethon/_client/users.py | 4 ---- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/telethon/_client/messages.py b/telethon/_client/messages.py index 69f00a0c..8305f60c 100644 --- a/telethon/_client/messages.py +++ b/telethon/_client/messages.py @@ -293,7 +293,7 @@ class _IDsIter(requestiter.RequestIter): else: r = await self.client(_tl.fn.messages.GetMessages(ids)) if self._entity: - from_id = await self.client._get_peer(self._entity) + from_id = await _get_peer(self.client, self._entity) if isinstance(r, _tl.messages.MessagesNotModified): self.buffer.extend(None for _ in ids) @@ -318,6 +318,14 @@ class _IDsIter(requestiter.RequestIter): self.buffer.append(_custom.Message._new(self.client, message, entities, self._entity)) +async def _get_peer(self: 'TelegramClient', input_peer: 'hints.EntityLike'): + try: + return utils.get_peer(input_peer) + except TypeError: + # Can only be self by now + return _tl.PeerUser(await self.get_peer_id(input_peer)) + + def get_messages( self: 'TelegramClient', entity: 'hints.EntityLike', @@ -480,7 +488,7 @@ async def send_message( if isinstance(result, _tl.UpdateShortSentMessage): return _custom.Message._new(self, _tl.Message( id=result.id, - peer_id=await self._get_peer(entity), + peer_id=await _get_peer(self, entity), message=message, date=result.date, out=result.out, diff --git a/telethon/_client/telegramclient.py b/telethon/_client/telegramclient.py index e5dc6f8f..62511cd8 100644 --- a/telethon/_client/telegramclient.py +++ b/telethon/_client/telegramclient.py @@ -3573,9 +3573,6 @@ class TelegramClient: ttl=None): return await uploads._file_to_media(**locals()) - async def _get_peer(self: 'TelegramClient', peer: 'hints.EntityLike'): - return await users._get_peer(**locals()) - def _get_response_message(self: 'TelegramClient', request, result, input_chat): return messageparse._get_response_message(**locals()) diff --git a/telethon/_client/users.py b/telethon/_client/users.py index 18a6f0f4..5f3d7116 100644 --- a/telethon/_client/users.py +++ b/telethon/_client/users.py @@ -323,10 +323,6 @@ async def get_input_entity( .format(peer, type(peer).__name__) ) -async def _get_peer(self: 'TelegramClient', peer: 'hints.EntityLike'): - i, cls = utils.resolve_id(await self.get_peer_id(peer)) - return cls(i) - async def get_peer_id( self: 'TelegramClient', peer: 'hints.EntityLike') -> int: