Telegram бот, не работает проверка на админа

Учусь в написании Telegram бота на Aiogram 3.4.1 (Python 3.8.1). В боте предусмотрена Reply клавиатура, которая должна отображаться только админу, чей ID лежит в файле .env Чтобы каждый раз в обработчиках не писать проверку на админа, написал функцию:

from dotenv import load_dotenv
import os

load_dotenv()

async def isadmin(message: Message):
    if message.from_user.id == int(os.getenv('ADMIN')):
        return True

К сожалению, при следующем вызове ...

@router.message(F.text == content.schedule_control_BT)
async def schedule_control(message: Message):
    if isadmin(message):
        await message.answer('ok', reply_markup=kba.schedule)

... проверка не производится, появляется ошибка:

RuntimeWarning: coroutine 'isadmin' was never awaited if isadmin(message): RuntimeWarning: Enable tracemalloc to get the object allocation traceback

Что нужно исправить?


Ответы (1 шт):

Автор решения: ribkoman

Вопрос решился подстановкой await перед вызовом функции isadmin

@router.message(F.text == content.schedule_control_BT)
async def schedule_control(message: Message):
    if await isadmin(message):
        await message.answer('ok', reply_markup=kba.schedule)

Благодарю за помощь участника сообщества insolor

→ Ссылка