Не могу устранить ошибку в софте по телеграмм подпискам
Всем привет.Особых знаний в питоне нет,но написал для себя софт для автоподписки на каналы в телеграмме(нужен был),но не могу устранить ошибку..Постоянно вылетает когда телеграмм дает ограничения на подписки (у него где то 20 в 20 минут можно).Что только не пробовал,но знаний не хватает...Может тут сможет кто помочь Нужно чтобы при виде ошибки(не может подписаться) он либо ждал определенное количество времени и снова приступал к действию или же просто его пропускал
from telethon import TelegramClient
import asyncio
API_ID = 4428245
API_HASH = 'f1296bbf14116c8e2e32767f3ec5bb89'
client = TelegramClient('client', api_id=API_ID, api_hash=API_HASH)
async def chats():
with open('channels.txt', 'r') as f:
return f.readlines()
async def main():
await client.connect()
channels = await chats()
for i in channels:
await client(JoinChannelRequest(i))
await asyncio.sleep(120)
client.start()
client.loop.run_until_complete(main())
Ответы (1 шт):
Автор решения: LightEmpress
→ Ссылка
Смотри, для отлова ошибок(Исключений) существует конструкция в Python как:
try:
<Твой код где будет ловиться ошибка>
except:
<Что будет когда ошибка произойдёт>
Также ты можешь отлавливать определённые ошибки(Исключения), указав их название. Например:
try:
1 / 0
except ZeroDivisionError: # ZeroDivisionError - это название ошибки, в нашем случае деление на ноль. (Его можно узнать как из её происхождения, как это произошло в твоём случае, или просто посмотреть в интернете :) )
print('Произошло деление на ноль')
print('Следующий код...') # Эта строчка выводиться, можешь проверить
Вот рабочий код:
from telethon import TelegramClient
import asyncio
API_ID = 4428245
API_HASH = 'f1296bbf14116c8e2e32767f3ec5bb89'
client = TelegramClient('client', api_id=API_ID, api_hash=API_HASH)
async def chats():
with open('channels.txt', 'r') as f:
return f.readlines()
async def main():
await client.connect()
try:
channels = await chats()
for i in channels:
await client(JoinChannelRequest(i))
await asyncio.sleep(120)
except:
pass # Можешь написать здесь свой код
client.start()
client.loop.run_until_complete(main())