Делаю бота в телеграмме,который считывает сообщения с нескольких аккаунтов.Для получение сообщений используется следующая конструкция:
@clien1t.on(events.NewMessage)
async def handler(event):
word = event.message.to_dict()['message']
if (word[:18] == "Код подтверждения:"):
print(word)
Для 1 клиента так работает.Затем 2 клиента:
@client1.on(events.NewMessage)
@client2.on(events.NewMessage)
async def handler(event):
word = event.message.to_dict()['message']
if (word[:18] == "Код подтверждения:"):
print(word)
И так всё работает - то есть принимает все сообщения с 2-х аккаунтов.Но как мне в цикле привязать,например, 10 аккаунтов?Я конечно могу написать
@client1.on(events.NewMessage)
@client2.on(events.NewMessage)
@client3.on(events.NewMessage)
@client4.on(events.NewMessage)
...
@client10.on(events.NewMessage)
Но это будет не удобно и не расширяемо.Попробовал вот так:
for i in range(3):
client = TelegramClient(session_names[i], api_id, api_hash)
clients.append(client)
testclient=clients[i]
@testclient.on(events.NewMessage)
async def handler(event):
word = event.message.to_dict()['message']
if (word[:18] == "Код подтверждения:"):
print(word)
Но этим способом читаются сообщения только последнего аккаунта(то есть третьего,а первый и второй аккаунт игнорируется).Как привязать к этой функции несколько декораторов в цикле?