Проблема с обработкой типов в PyTelegramBotAPI
Мне нужно, чтоб бот мог отвечать на команду "all" если в сообщении будет присутствовать картинка, видео, файл и т.д. Если сказать вкратце, то бот должен ответить, вне зависимости, сколько и какой будет тип в сообщении.
Сначала я добавил декоратор для каждого типа, но при тестировании заметил, если пользователь отправил картинку и видео, то будет завершаться ошибкой. И так со всеми комбинациями типов в сообщении.
import telebot
TOKEN = "YOUtokenID"
bot = telebot.TeleBot(TOKEN)
@bot.message_handler(content_types=['text'], func=lambda message: "/all" in message.text.split())
#@bot.message_handler(content_types=['photo'], func=lambda message: "/all" in message.caption.split())
#@bot.message_handler(content_types=['video'], func=lambda message: "/all" in message.caption.split())
#@bot.message_handler(content_types=['voice'], func=lambda message: "/all" in message.caption.split())
#@bot.message_handler(content_types=['document'], func=lambda message: "/all" in message.caption.split())
def all_users(message):
if message.chat.type != "group" and message.chat.type != "supergroup":
return
chat_id = message.chat.id
members = bot.get_chat_administrators(chat_id)
usernames = ""
for member in members:
user = member.user
if user.id != bot.get_me().id:
usernames += "@" + user.username + " "
bot.reply_to(message, "Nickname: " + usernames)
bot.polling()
Источник: Stack Overflow на русском