@sashx

Почему возникает ошибка синхронизации в Telegram — бот?

Взял простого таймер - бота, но он жалуется на функцию send_weclome, хотя await в ней прописан. Не могу понять, что не так?

Code

import asyncio
import aioschedule
from telebot import AsyncTeleBot

import config

API_TOKEN = config.TOKEN
bot = AsyncTeleBot(API_TOKEN)


async def beep(chat_id) -> None:
    await bot.send_message(chat_id, text='Beep!')
    aioschedule.clear(chat_id)


@bot.message_handler(commands=['help', 'start'])
async def send_welcome(message):
    await bot.send_message(message.chat.id, "Hi! Use /set <seconds> to set a timer")


@bot.message_handler(commands=['set'])
async def set_timer(message):
    args = message.text.split()
    if len(args) > 1 and args[1].isdigit():
        sec = int(args[1])
        aioschedule.every(sec).seconds.do(beep, message.chat.id).tag(message.chat.id)
    else:
        await bot.reply_to(message, 'Usage: /set <seconds>')


@bot.message_handler(commands=['unset'])
def unset_timer(message):
    aioschedule.clean(message.chat.id)


async def scheduler():
    while True:
        try:
            await aioschedule.run_pending()
            await asyncio.sleep(1)
        except Exception:
            break


async def main():
    await asyncio.gather(bot.infinity_polling(), scheduler())


if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())



Error

/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/telebot/util.py:69: RuntimeWarning: coroutine 'send_welcome' was never awaited
  task(*args, **kwargs)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback

  • Вопрос задан
  • 87 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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