April 2, 2025

Автоматизация публикации RSS-ленты в Telegram канале на Golang

Описание проекта

Я разработал бота на языке Go, который автоматически публикует новые записи из RSS-ленты в Telegram-канал. Это решение было создано для автоматизации процесса публикации контента из внешнего источника в целевой Telegram-канал.

Проблема и решение

Проблема: Необходимо было вручную копировать и публиковать новые посты из одного Telegram-канала в другой, что отнимало много времени и могло приводить к пропуску важных публикаций.

Решение: Автоматизированный бот, который:

  1. Регулярно проверяет RSS-ленту канала
  2. Обнаруживает новые публикации
  3. Форматирует их для Telegram
  4. Автоматически публикует в целевом канале
  5. Сохраняет состояние последней публикации

Техническая реализация

Основные компоненты системы

  1. RSS-парсер - использует библиотеку gofeed для чтения и парсинга RSS-ленты
  2. Telegram Bot API - взаимодействие с Telegram через официальную библиотеку
  3. Механизм хранения состояния - сохранение последней обработанной ссылки в файле
  4. Цикл проверки - периодический опрос RSS-ленты

Обработка контента

Особое внимание уделено корректному форматированию контента для Telegram.

func cleanHTML(text string) string {
    // Заменяем HTML-теги на Telegram-совместимые
    text = strings.ReplaceAll(text, "<p>", "")
    text = strings.ReplaceAll(text, "</p>", "\n")
    text = strings.ReplaceAll(text, "<br>", "\n")
    // ... другие замены
    return text
}

Отправка сообщений

Сообщения отправляются с:

  • Поддержкой HTML-разметки
  • Кнопкой "Перейти" к оригинальной публикации
  • Корректным форматированием текста

Преимущества решения

  1. Полная автоматизация - система работает без вмешательства человека
  2. Надежность - сохранение состояния гарантирует отсутствие дублирования публикаций
  3. Гибкость - легко изменить источник RSS или целевой канал
  4. Эффективность - проверка каждые 5 минут обеспечивает своевременную публикацию
  5. Масштабируемость - можно добавить обработку нескольких RSS-лент

Вывод

Разработанное решение эффективно решает задачу автоматической публикации контента из RSS-ленты в Telegram-канал. Использование Go обеспечило высокую производительность и надежность системы, а модульная структура кода позволяет легко расширять функционал в будущем.

Этот проект демонстрирует, как с помощью относительно небольшого количества кода можно автоматизировать рутинные задачи и создать полезный инструмент для управления контентом в социальных сетях.

🤖 Автор: @offrmdm | Telegram-канал: БотоФабрика | GitHub: d1mk9 · GitHub
Разрабатываю чат-ботов на Golang и no-code платформах.
Готов к сотрудничеству!