Как сделать, чтобы бот отвечал определённым людям?
Допустим, у меня есть бот на python telebot, который должен отвечать только людям из списка users, в котором несколько user id. C одним обработчиком(message_handler) и функцией(send_message_user) можно сделать это через условие:
bot = telebot.TeleBot('api')
users = [1234567, 7654321]
@bot.message_handler(commands=['start'])
def send_message_user(message):
if message.from_user.id in users:
bot.send_message(message.from_user.id, 'Hello')
else:
bot.send_message(message.chat.id, 'error')
Но если таких функций и обработчиков много? Это неудобно добавлять проверку в каждую функцию, + будет повторяться код не один раз. Есть ли другие решения? Основного бота пишу на aiogram, если в этой библиотеке предусмотрен инструмент для решения данной ситуации я был бы рад его найти. (:
Ответы (1 шт):
Автор решения: GorkiiOgurec
→ Ссылка
Можно сделать примерно так
@bot.message_handler(content_types=['text'],
func=lambda message: message.from_user.id in users
)
def send_message_user(message: types.Message) -> None:
if message.text == 'start':
bot.send_message(message.from_user.id, 'hello')