Пока
только изучаю telethon и asyncio. Появилась нужда делать несколько вещей одновременно, а именно:
1) Запустить прослушивание чата.
2) Неважно, есть ли в чате сообщения или нет, отправить сообщение.
Запускаю прослушивание сообщений по обычной схеме:
# ...
# ...
@client.on(events.NewMessage(chats=[chat]))
async def parse_event(event):
if not isinstance(event.message, Message):
return
text = event.message.message
print(text)
client.run_until_disconnect()
Всё работает, но метод run_until_disconnect всё блокирует и ничего другого делать не получается.
И вот теперь некоторые вопросы:
1) Как client.run_until_disconnect() понимает, что ему запускать? Например, через asyncio в качестве аргумента надо передать входную функцию. А тут - вообще не понимаю
2) Как запустить прослушивание сообщений без блокировки других действий? Я даже не особо пойму, каким образом модуль вообще запускает функцию прослушивания. Вроде понимаю, что оборачивает ее в декоратор, всё такое. Но а в подробностях вообще никак.
3) Если запустить без блокировки нельзя, то можно как-то при запуске прослушивания, сразу же передать ему какой-то объект, который мелькнет функции, что нужно, к примеру, отправить сообщение?