mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-08-07 13:34:59 +03:00
simple floodwait fix
This commit is contained in:
parent
26f121060d
commit
978bf7c32b
|
@ -30,14 +30,14 @@ class UserMethods(TelegramBaseClient):
|
||||||
self._flood_waited_requests.pop(r.CONSTRUCTOR_ID, None)
|
self._flood_waited_requests.pop(r.CONSTRUCTOR_ID, None)
|
||||||
else:
|
else:
|
||||||
raise errors.FloodWaitError(capture=diff)
|
raise errors.FloodWaitError(capture=diff)
|
||||||
|
results = None
|
||||||
request_index = 0
|
request_index = 0
|
||||||
self._last_request = time.time()
|
self._last_request = time.time()
|
||||||
for _ in range(self._request_retries):
|
for _ in range(self._request_retries):
|
||||||
try:
|
try:
|
||||||
future = self._sender.send(request, ordered=ordered)
|
future = self._sender.send(request, ordered=ordered)
|
||||||
if isinstance(future, list):
|
if isinstance(future, list):
|
||||||
results = []
|
results = [] if not results else results
|
||||||
for f in future:
|
for f in future:
|
||||||
result = await f
|
result = await f
|
||||||
self.session.process_entities(result)
|
self.session.process_entities(result)
|
||||||
|
@ -53,10 +53,13 @@ class UserMethods(TelegramBaseClient):
|
||||||
e.__class__.__name__, e)
|
e.__class__.__name__, e)
|
||||||
except (errors.FloodWaitError, errors.FloodTestPhoneWaitError) as e:
|
except (errors.FloodWaitError, errors.FloodTestPhoneWaitError) as e:
|
||||||
if utils.is_list_like(request):
|
if utils.is_list_like(request):
|
||||||
request = request[request_index]
|
constructor_id = request[request_index].CONSTRUCTOR_ID
|
||||||
|
request = request[request_index:]
|
||||||
|
else:
|
||||||
|
constructor_id = request.CONSTRUCTOR_ID
|
||||||
|
|
||||||
self._flood_waited_requests\
|
self._flood_waited_requests\
|
||||||
[request.CONSTRUCTOR_ID] = time.time() + e.seconds
|
[constructor_id] = time.time() + e.seconds
|
||||||
|
|
||||||
if e.seconds <= self.flood_sleep_threshold:
|
if e.seconds <= self.flood_sleep_threshold:
|
||||||
__log__.info('Sleeping for %ds on flood wait', e.seconds)
|
__log__.info('Sleeping for %ds on flood wait', e.seconds)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user