Техническое задание: Бот для миграции контента

Цель проекта

Разработать программного бота, который будет автоматически переносить контент (статьи, тексты, изображения) из заданных категорий стороннего сайта на платформе WordPress на целевой сайт, работающий на движке MediaWiki.

Ключевые функциональные требования

1. Настройка и конфигурация

  • Бот должен получать все параметры работы из конфигурационных файлов или прямого указания при запуске.
  • Настраиваемые параметры должны включать:
    • URL-адрес источника (сайт на WordPress).
    • Название копируемой категории на сайте-источнике.
    • Режим копирования: только текст или текст с вложениями (изображения).
    • URL-адрес и конечную точку API целевого сайта на MediaWiki.
    • Пространство имён на целевом вики-сайте для размещения страниц.
    • Учётные данные (логин и пароль) бота на целевом сайте MediaWiki для авторизованного доступа.

2. Основная логика работы

  • Бот обращается к стороннему сайту на WordPress (без прямого административного доступа) для чтения публично доступного контента.
  • Осуществляет парсинг и извлечение данных (страниц) из указанной категории.
  • Преобразует и адаптирует полученный контент для совместимости с разметкой MediaWiki.
  • При необходимости загружает и переносит изображения на целевой вики-сайт.
  • Авторизуется на целевом сайте MediaWiki и создаёт новые страницы (или обновляет существующие) в указанном пространстве имён.

3. Технические ограничения и условия

  • Разработка должна учитывать, что доступ к сайту-источнику возможен только на уровне чтения публичного контента.
  • Бот должен корректно обрабатывать структуру WordPress и преобразовывать её в вики-разметку.
  • Необходимо предусмотреть обработку ошибок (отсутствие доступа, проблемы с сетью, ошибки API MediaWiki).
  • Желательно реализовать логирование процесса работы для отладки.

Ожидаемый результат

Готовое кроссплатформенное решение (скрипт/программа), которое по заданной конфигурации автоматически выполняет перенос контента, минимизируя ручной труд.