I was building a bot using the telethon library and ran into a problem with a FloodWaitError. I have created a function that subscribes to a list of telegram channels and while it is running I get this error very often. How can it be prevented? I tried to slow down the process of subscribing to channels, but that didn't help either.
client = TelegramClient(name, id, hash)
def is_private(url: str) -> bool:
return "/+" in url
async def join_channel():
for links in channels:
await asyncio.sleep(3)
try:
if is_private(links):
await client(ImportChatInviteRequest(links.split("+")[-1]))
print(0)
else:
await client(functions.channels.JoinChannelRequest(channel=links))
print(1)
except ValueError:
print(f"ValueError cant get entity from: {links}")
except UserAlreadyParticipantError:
print(f"Already a participant of {links}")
except InviteRequestSentError:
print(f"Successfully requested to join this chat: {links}")
except telethon.errors.rpcerrorlist.InviteHashExpiredError:
print("afk")
client.start()
client.loop.run_until_complete(join_channel())
print("Bot start!")
client.run_until_disconnected()
I had a delay of up to 8 hours
Traceback (most recent call last):
File "F:\proj\PYTHON\TElethonTGbot\main.py", line 107, in <module>
client.loop.run_until_complete(join_channel())
File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 646, in run_until_complete
return future.result()
File "F:\proj\PYTHON\TElethonTGbot\main.py", line 90, in join_channel
await client(ImportChatInviteRequest(links.split("+")[-1]))
File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\site-packages\telethon\client\users.py", line 30, in __call__
return await self._call(self._sender, request, ordered=ordered)
File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\site-packages\telethon\client\users.py", line 83, in _call
result = await future
telethon.errors.rpcerrorlist.FloodWaitError: A wait of 232 seconds is required (caused by ImportChatInviteRequest)