Пишу телеграм бота, который отправляет фото в нужный канал, в зависимости от выбранного региона пользователем.
Код следующий:
@bot.message_handler(content_types = ['photo', 'text']) ## обработчик данных фото и текста инициализация
def echo(message): ##функция отправляющая сообщения
u = mapUser(message.from_user)
user = fetchUser(u)
if user == False:
return
channel = mrfToChannels[user.MRF]
chat_id = channel.channel_chat_id
if message.text == "/start" or message.text == "/Analytics" or message.text == "/countusers":
bot.send_message(message.chat.id, "<b>ОШИБКА:</b> Отправка команды <b>/start</b> в канал запрещена.",
parse_mode="HTML")
bot.send_message(message.chat.id,
"Попробуйте снова по следующей инструкции:\n1. Введите команду <b>/start</b>, ожидайте сообщение-привествие\n2. Пишите свое обращение, приклепляйте фото по необходимости",
parse_mode="HTML")
return
else:
if(message.caption):
caption = message.caption + "\n\nЗапрос от монтера - #" + u.fullname().replace(" ", "_")
else:
caption = "\n\nЗапрос от монтера - #" + u.fullname().replace(" ", "_")
if message.content_type == 'photo':
photo_id = message.photo[-1].file_id
sendedMessage = bot.send_photo(chat_id, photo_id, caption)
elif message.content_type == 'text':
sendedMessage = bot.send_message(chat_id, text=message.text + "\n\nЗапрос от монтера - #" + u.fullname().replace(" ", "_"))
bot.send_message(message.chat.id, f"Для перехода в канал обращения перейдите по ссылке {channel.channel_link}")
bot.send_message(message.chat.id, "Для создания нового обращения введите команду /start")
save_bot_repost_info(message, sendedMessage)
Каким образом можно подсчитать кол-во фотографий который отправляет пользователь? необходимо ограничить так, чтобы нельзя было отправить больше 1 фото и выходило return'ом с цикла с сообщением. Сейчас получается в случае отправки больше 1 фото отправка фото несколькими постами в канал так как каждое фото считается отдельным сообщением.