diff --git a/telethon/client/downloads.py b/telethon/client/downloads.py index e4bb83a0..334f28a4 100644 --- a/telethon/client/downloads.py +++ b/telethon/client/downloads.py @@ -68,7 +68,7 @@ class _DirectDownloadIter(RequestIter): async def _request(self): try: - result = await self._sender.send(self.request) + result = await self.client._call(self._sender, self.request) if isinstance(result, types.upload.FileCdnRedirect): raise NotImplementedError # TODO Implement else: diff --git a/telethon/client/messages.py b/telethon/client/messages.py index a18c3e08..b0d76f07 100644 --- a/telethon/client/messages.py +++ b/telethon/client/messages.py @@ -1039,7 +1039,7 @@ class MessageMethods: if exported: try: sender = await self._borrow_exported_sender(entity.dc_id) - return await sender.send(request) + return await self._call(sender, request) finally: await self._return_exported_sender(sender) else: diff --git a/telethon/client/users.py b/telethon/client/users.py index 39d68aad..669650df 100644 --- a/telethon/client/users.py +++ b/telethon/client/users.py @@ -27,6 +27,9 @@ def _fmt_flood(delay, request, *, early=False, td=datetime.timedelta): class UserMethods: async def __call__(self: 'TelegramClient', request, ordered=False): + return await self._call(self._sender, request, ordered=ordered) + + async def _call(self: 'TelegramClient', sender, request, ordered=False): requests = (request if utils.is_list_like(request) else (request,)) for r in requests: if not isinstance(r, TLRequest): @@ -50,7 +53,7 @@ class UserMethods: self._last_request = time.time() for attempt in retry_range(self._request_retries): try: - future = self._sender.send(request, ordered=ordered) + future = sender.send(request, ordered=ordered) if isinstance(future, list): results = [] exceptions = []