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