Главная Портфолио Телеграм бот Telegram-бот для управления публикациями в каналах: кросс-постинг и автоматическая отчетность

{ Telegram-бот для управления публикациями в каналах: кросс-постинг и автоматическая отчетность }

// Телеграм бот

О проекте

Этот проект представляет собой многофункционального бота для администрирования Telegram-каналов. Он позволяет пользователям публиковать контент (текст, фото, видео, аудио) в выбранные каналы через интерактивное меню, а также автоматически формирует отчеты о публикациях. Решение идеально для SMM-специалистов, медиа-агентств и комьюнити-менеджеров.


Основные функции

  1. Гибкий выбор каналов

    • Поддержка 4 каналов: "Должники", "Суперконцентраты...", "Отходы полимеров", "Вторичные полимеры".

    • 2 типа интерфейса: Inline-кнопки и Reply-клавиатура.

  2. Публикация контента

    • Поддержка форматов: текст, фото (с подписью), видео, аудио.

    • Отправка медиагрупп (например, несколько изображений).

  3. Автоматическая отчетность

    • Уведомления в отчетный чат со ссылкой на сообщение.

    • Превью контента (первые 100 символов).


Технические особенности

  • Finite State Machine (FSM)
    Управление диалогом: выбор канала → ввод сообщения → публикация.

  • Динамические клавиатуры

    • InlineKeyboardMarkup для выбора каналов.

    • ReplyKeyboardMarkup с кнопками-названиями каналов.

  • Работа с медиа
    Использование InputMediaPhoto/Video/Audio для формирования медиагрупп.

  • Ссылки на сообщения
    Генерация прямых ссылок на опубликованные посты вида:
    https://t.me/c/канал/id_сообщения.


Пример отчета

markdown

Сообщение в канал 'Должники' опубликовано:

**Содержание**: Уведомление для должников №45...
**Ссылка на сообщение**: [Ссылка](https://t.me/c/.../123)

Инструкция для пользователя

  1. /start → активация бота.

  2. /choose → выбор типа интерфейса (Inline/Reply).

  3. Выбор канала из списка.

  4. Отправка контента → автоматическая публикация.


Архитектура решения

  1. Хранение данных

    • ID каналов в словаре channels.

    • Состояния FSM в оперативной памяти (MemoryStorage).

  2. Безопасность

    • Работа только в личных сообщениях (message.chat.type == 'private').

  3. Логирование

    • Запись событий уровня INFO и выше.


Расширение функционала

  1. Добавьте проверку прав

    python

  1. async def is_user_admin(user_id: int, channel_id: int) -> bool:
        member = await bot.get_chat_member(channel_id, user_id)
        return member.is_chat_admin()
  2. Поддержка документов
    Добавьте обработчик для content_type='document'.

  3. Планирование публикаций
    Интегрируйте aiogram.utils.helper import DelayedMessage.


Технологический стек: Python 3.8+, aiogram 2.x, FSM, Telegram Bot API.
Рекомендации:

  • Используйте Redis вместо MemoryStorage для сохранения состояния при перезапуске.

  • Добавьте кэширование списка каналов из БД.

Проект значительно упрощает кросс-постинг в несколько каналов, экономя до 80% времени на рутинных операциях. Для запуска замените API_TOKEN и REPORT_CHAT_ID на реальные значения!

Технические детали

  • Дата завершения:
    09.11.2023
  • Категория:
    Телеграм бот
  • Технологии:
    Python aiogram

Нужен похожий проект?

Если вы заинтересованы в разработке подобного проекта или у вас есть вопросы, свяжитесь со мной!

Связаться со мной