Команда только от админа — Как реализовать на Telethon?

пишу юзербота. нужно в чате получить команду (от анонимного админа) и выполнить её, если пользователь действительно админ. Не знаю как реализовать "проверку на админа" при получении команды в чате. На Telethon.

На Aiogram всё было просто - я делал лист с ID админов. Если в чат приходило сообщение с командой, бот проверял что ID отправителя был в списке, и тогда выполнял:
@dp.message_handler(commands="random_command")
async def mycommand(message: types.Message):
    print(message.from_user.id) #Всегда возвращает айди отправителя
    if str(message.from_user.id) in cfg.ADMINS_ID:
        await message.reply('Бот выполнил команду')
    else:
        await message.reply('Эта команда доступна только админам сообщества')


На Telethon такой принцип не работает, ибо сообщение от имени чата возвращает NoneType вместо user_id, и работает только тогда, когда сообщение от юзера. Естественно, аккаунт юзербота в чате имеет права админа.
@client.on(events.NewMessage(chats=cfg.CHAT_ID,pattern="/random_command"))
async def mycommand(event):
    print(event.from_id) #Вернёт None если сообщение от имени чата
    if str(event.from_id.user_id) in cfg.ADMINS_ID:
        await client.send_message(cfg.CHAT_ID, 'Бот выполнил команду')
    else:
        await client.send_message(cfg.CHAT_ID, 'Эта команда доступна только админам сообщества')


Какие есть варианты решения проблемы?
  • Вопрос задан
  • 346 просмотров
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

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

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