@FLYven

Как сделать рассылку фото и фото с подписями telebot?

Помогите допилить функцию в боте написанном с помощью библиотеки telebot
Есть вот такой код:

admin_ids = []  # Замените на фактические идентификаторы администраторов

# Словарь для хранения сообщений от админов
admin_messages = {}

@bot.message_handler(commands=['send'])
def handle_send(message):
    # Проверка, является ли отправитель администратором
    if message.from_user.id in admin_ids:
        # Сохранение сообщения админа
        admin_messages[message.from_user.id] = True
        bot.reply_to(message, "Какое сообщение вы хотите отправить?")
    else:
        bot.reply_to(message, "У вас нет доступа к этой команде.")

# Обработка всех остальных сообщений
@bot.message_handler(func=lambda message: True)
def handle_messages(message):
    # Проверка, является ли отправитель администратором и ожидает ли ввода сообщения
    if message.from_user.id in admin_ids and admin_messages.get(message.from_user.id):
        # Отправка сообщения или фотографии всем пользователям
        if message.content_type == 'text':
            text = message.text
            connect = sqlite3.connect('users.db')
            cursor = connect.cursor()
            cursor.execute("SELECT id FROM login_id")
            users = cursor.fetchall()
            for user in users:
                try:
                    bot.send_message(user[0], text)
                except Exception as e:
                    print(e)
            cursor.close()
            connect.close()
        elif message.content_type == 'photo':
            photo = message.photo[-1].file_id
            connect = sqlite3.connect('users.db')
            cursor = connect.cursor()
            cursor.execute("SELECT id FROM login_id")
            users = cursor.fetchall()
            for user in users:
                try:
                    bot.send_photo(user[0], photo)
                except Exception as e:
                    print(e)
            cursor.close()
            connect.close()
        # Сброс флага ожидания сообщения от админа
        admin_messages[message.from_user.id] = False
    else:
        bot.reply_to(message, "Команда не распознана или у вас нет доступа для отправки сообщений.")


Этот код сейчас может рассылать только текстовые сообщения, но нужно чтобы он мог ещё отправлять фото и фото с подписями.
В идеале конечно сделать так, чтобы он мог рассылать сообщения любого типа.
  • Вопрос задан
  • 305 просмотров
Решения вопроса 1
RimMirK
@RimMirK
Вроде человек. Вроде учусь. Вроде пайтону
не усложняй себе жизнь. Давным давно уже есть bot.copy_message.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@TKDBOT
Учу python. Готов к конструктивной критике.
Замени это - @bot.message_handler(func=lambda message: True)
На это - @bot.message_handler(content_types=['text'])
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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