Задать вопрос
@idpetrishenko

Пытаюсь создать в питон чтение ссылок по строкам. Что бы он от них по очереди получал данные. Но ничего не выходит. Что делать?

Добрый день!
Есть 350 ссылок на чаты в телеграм. Хочу автоматизировать вход в чаты. Попробовал указать адреса ссылки в коде но работает только на маленьком количестве ссылок. После чего решил попробовать сделать чтение из файла, но по какой-то причине происходит очень длинное ожидание и после чего выдает ошибку: Attempt 1 at connecting failed: TimeoutError:

from telethon import TelegramClient
from telethon.tl.functions.channels import JoinChannelRequest
from telethon import TelegramClient, events
import asyncio
from time import sleep

# import sys

api_id = 12345678
api_hash = '123456789'

file1 = open("sample.txt", "r")

for line in lines:
    print(line.strip())

file1.close

entitys = []
counter = []

with TelegramClient('anon', api_id, api_hash) as client:
    for g in groups:
        channel = client.loop.run_until_complete(client.get_input_entity(g))
        entitys.append(channel)
        print('ожидание')


    # print(len(entitys))
    async def main():
        async with TelegramClient('anon', api_id, api_hash) as subscriber:
            await subscriber.send_message('@gle_lev', 'Hello')
            # считываем все строки
            lines = file1.readlines()

            @subscriber.on(events.NewMessage(pattern='Start'))
            async def handler(event):
                for e in entitys:
                    used_link_index = entitys.index(e)
                    used_link = groups[used_link_index]
                    counter.append(1)
                    if len(counter) <= 3:
                        await subscriber(JoinChannelRequest(channel=e))
                        await subscriber.send_message('@gle_lev', 'Done for ' + str(used_link))
                        print(used_link)
                        sleep(5)
                    elif len(counter) == 4:
                        await subscriber(JoinChannelRequest(channel=e))
                        await subscriber.send_message('@gle_lev', 'Done for ' + str(used_link))
                        print('I am sleeping for 220 seconds')
                        await subscriber.send_message('@gle_lev', 'I am sleeping for 220 seconds')
                        counter.clear()
                        print(used_link)
                        sleep(220)
                    else:
                        pass

            await subscriber.run_until_disconnected()

asyncio.run(main())
  • Вопрос задан
  • 194 просмотра
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы