Как можно запустить несколько клиентов Telethon?

Я нашел некоторое количество ответов, хороших, но эти способы годны, если есть определенное количество аккаунтов. А мне надо, чтобы программа из json получала данные аккаунтов, количество которых может сколько угодно, один, два, хоть двадцать. Я попытался реализовать создав класс, и объявив для каждого аккаунта свой экземпляр этого класса. Но все же я потерпел фиаско: так как чтобы объявить декоратор, ему нужен явный экземпляр TelegramClient, а объявить не получится, т.к. создастся session файл и надо передать данные при объявлении клиента.
class Account:
    client = None
    def __init__(self, acc):
        client = TelegramClient(acc['name'], acc['api_id'], acc['api_hash'])
    
    @client.on(events.NewMessage)
    async def my_event_handler(event):
        pass

А в данном случае просто ругается, что None объект не имеет атрибута on. Какое еще решение есть?
  • Вопрос задан
  • 1216 просмотров
Пригласить эксперта
Ответы на вопрос 1
@say8hi
Нужно использовать self:
class Account:
    def __init__(self, acc):
        self.client = TelegramClient(acc['name'], acc['api_id'], acc['api_hash'])

    def run(self):
        @self.client.on(events.NewMessage)
        async def my_event_handler(event):
            pass
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект