Для того чтобы ваш телеграм-бот мог обрабатывать различные типы сообщений, такие как фотографии, видео и гифки, вам нужно добавить обработчики для этих типов сообщений. В библиотеке `telebot` это можно сделать с помощью различных декораторов `@bot.message_handler()`, применяя соответствующие свойства сообщений.
Вот как вы можете изменить ваш код, чтобы он мог отправлять сообщения с изображениями, видео и анимациями (гифками) в чат администраторов:
```python
import telebot
from telebot import types
from config import token, moder_chat_id
import time
bot = telebot.TeleBot(token, parse_mode="HTML")
# Старт
@bot.message_handler(commands=["start", "help"])
def start(message):
bot.send_message(message.chat.id, f"Привет, @{message.from_user.username}!\nЯ - бот для связи с модерацией канала @Kiss_and_hug, просто отправь мне сообщение, и я перешлю его модерации")
# Ответ
@bot.message_handler(commands=["answer"])
def answer(message):
if message.chat.type != "private" and message.chat.id == moder_chat_id:
try:
id = message.text.split(maxsplit=2)[1]
text = message.text.split(maxsplit=2)[-1]
username = message.from_user.username
bot.send_message(id, f"Модератор уже отправляет вам ответ, подождите...")
bot.send_message(moder_chat_id, f"@{username}, ваше сообщение для пользователя ID - {id} отправлено!")
time.sleep(3)
bot.send_message(id, f"{text}")
except Exception as e:
bot.send_message(moder_chat_id, "❌ Ошибка: указан неверный ID!")
# Обработка текстовых сообщений и любых других
@bot.message_handler(func=lambda message: True)
def forward_message(message):
try:
username = message.from_user.username
user_id = message.from_user.id
# Проверка на текстовые сообщения
if message.content_type == 'text':
bot.send_message(moder_chat_id, f"Новое текстовое сообщение от @{username} (ID {user_id}): {message.text}")
# Проверка на фотографии
elif message.content_type == 'photo':
# Получаем фото (можем отправить фото с наибольшим разрешением)
photo_id = message.photo[-1].file_id
bot.send_photo(moder_chat_id, photo_id, caption=f"Фото от @{username} (ID {user_id})")
# Проверка на видео
elif message.content_type == 'video':
video_id = message.video.file_id
bot.send_video(moder_chat_id, video_id, caption=f"Видео от @{username} (ID {user_id})")
# Проверка на гифки
elif message.content_type == 'animation':
animation_id = message.animation.file_id
bot.send_animation(moder_chat_id, animation_id, caption=f"Гифка от @{username} (ID {user_id})")
# Можно добавить дополнительные проверки для других типов сообщений (аудио, документы и т.д.)
except Exception as e:
bot.send_message(moder_chat_id, f"❌ Произошла ошибка при пересылке сообщения: {e}")
# Запуск бота
bot.polling(none_stop=True)
```
### Изменения, внесенные в ваш код:
1. **Проверка типа сообщения**: Я добавил условия для обработки различных типов сообщений с использованием свойства `content_type`. Таким образом, если бот получает фото, видео или гифку, он будет их обрабатывать соответствующим образом.
2. **Отправка информации модераторам**: Для каждого типа сообщения (текст, фото, видео, анимация) бот будет отправлять сообщения в чат модераторов с соответствующей информацией о том, от кого пришло сообщение.
Теперь ваш бот должен принимать и обрабатывать сообщения разных типов и пересылать их модераторам. Если у вас есть дополнительные вопросы или требуется помощь, не стесняйтесь спрашивать!