From db29e9b7efb204fbe56fe8d59ccc4d55ceddc165 Mon Sep 17 00:00:00 2001 From: Lonami Exo Date: Mon, 3 Oct 2022 13:11:48 +0200 Subject: [PATCH] Don't unnecessarily refetch the sender twice --- telethon/tl/custom/sendergetter.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/telethon/tl/custom/sendergetter.py b/telethon/tl/custom/sendergetter.py index 673cab25..aa1664d3 100644 --- a/telethon/tl/custom/sendergetter.py +++ b/telethon/tl/custom/sendergetter.py @@ -46,11 +46,14 @@ class SenderGetter(abc.ABC): # cached information, they may use the property instead. if (self._sender is None or getattr(self._sender, 'min', None)) \ and await self.get_input_sender(): - try: - self._sender =\ - await self._client.get_entity(self._input_sender) - except ValueError: - await self._refetch_sender() + # self.get_input_sender may refresh in which case the sender may no longer be min + # However it could still incur a cost so the cheap check is done twice instead. + if self._sender is None or getattr(self._sender, 'min', None): + try: + self._sender =\ + await self._client.get_entity(self._input_sender) + except ValueError: + await self._refetch_sender() return self._sender @property