Моя программа должна отвечать на сообщения Telegram, получаемые учетной записью пользователя, с текстом, заданным пользователем. Этот текст можно изменить, отправив сообщение боту Telegram. Для бота я использовал PyTelegramBotAPI, а для отправки сообщений из учетной записи пользователя я использовал Telethon. Я могу запустить бота, позвонив по номеру bot.polling()
, и он отлично работает. Клиент Telethon также отлично работает отдельно, у него есть такие методы, как:
async def run():
self.add_event_handler(self.message_handler, events.NewMessage)
while True:
#(Every Second the while is supposed to be checked)
if(condition):
do_something()
async def message_handler(self, event):
do_another_thing()
, и для запуска клиента я бы просто:
loop = asyncio.get_event_loop()
loop.run_until_complete(client.run())
Но я не могу заставить их работать одновременно .
Я пробовал:
asyncio.get_event_loop().run_until_complete(asyncio.gather(
bot.bot.polling(none_stop=True, interval=0.1, timeout=15),
client.run()
))
запускать их обоих одновременно, но это запускает только бота.
Я также пробовал:
executor = ProcessPoolExecutor(2)
loop = asyncio.get_event_loop()
boo = asyncio.create_task(loop.run_in_executor(executor, bot.bot.polling(none_stop=True, interval=0.5, timeout=15)))
baa = asyncio.create_task(loop.run_in_executor(executor, client.run()))
но это тоже не работает.
подскажите, пожалуйста, как запустить бота и клиента одновременно?