Разработать систему, которая автоматически получает публикации из заданных сообществ VK, обрабатывает их и публикует на выбранных площадках:
VK, Telegram, MAX, Одноклассники, другая соц.сеть и официальный сайт медиагруппы.
Общая схема:
Пост в VK → получение → обработка → определение площадок → адаптация → загрузка медиа → публикация.
1. Получение контента из VK
Система должна отслеживать новые публикации и получать:
текст, фотографии, видео, опросы, ссылки и другие поддерживаемые элементы.
Для каждого поста необходимо сохранять ID VK и не допускать повторной обработки.
Желательно предусмотреть несколько источников VK.
2. Обработка контента
Перед публикацией должна применяться настройка правил для каждой площадки.
Необходимо поддержать:
удаление и замену фрагментов текста;
обработку хэштегов;
удаление служебных ссылок;
добавление футеров и ссылок;
разные шаблоны для разных площадок;
сохранение структуры текста.
3. Медиа
Фотографии и видео должны автоматически скачиваться из VK и загружаться на целевые площадки.
Необходимо поддержать несколько фотографий с сохранением порядка.
Для видео предусмотреть обработку/конвертацию при необходимости, учёт ограничений площадки и повторные попытки загрузки при временных ошибках.
4. Опросы
Если API площадки позволяет, опрос VK должен переноситься как нативный опрос.
Если это невозможно, должен использоваться заранее согласованный fallback-вариант.
5. Публикация
Для каждой площадки должен быть отдельный адаптер:
Telegram текст, фото, видео, опросы;
MAX поддерживаемые API типы контента;
Одноклассники поддерживаемые API типы;
Соц.сеть поддерживаемые API типы;
сайт через API/CMS, конкретный способ согласовывается отдельно.
Площадки должны работать независимо друг от друга.
Ошибка на одной площадке не должна останавливать публикацию на остальных. Повторная попытка должна выполняться только для неуспешной площадки.
6. Очередь и правила публикации
Необходимо предусмотреть очередь публикаций и возможность задавать:
какие площадки использовать;
порядок публикации;
задержку между публикациями;
ручной запуск.
Отдельно предусмотреть специальные правила, например рекламную паузу: после публикации рекламного поста система ждёт заданное время, после чего публикует накопившиеся посты.
7. Управляющие хэштеги
Хэштеги в исходном посте могут управлять публикацией.
Например:
#no_tg не публиковать в Telegram;
#no_max не публиковать в MAX.
Также хэштеги могут задавать порядок публикации, футер или шаблон обработки текста.
Желательно сделать настройку таких правил через админ-панель без изменения кода.
Управляющие хэштеги при необходимости должны удаляться из итоговой публикации.
8. Административная панель
Нужен web-интерфейс для контроля системы.
Для каждого поста отображать:
исходный текст и медиа;
дату публикации;
целевые площадки;
статус каждой площадки;
время публикации;
ошибки и количество попыток;
ссылки на опубликованные посты.
Из панели необходимо иметь возможность:
включить/отключить площадку;
отменить публикацию;
повторить публикацию;
повторить только ошибочную площадку;
изменить порядок и задержку;
запустить публикацию вручную;
при необходимости отредактировать текст.
9. Надёжность
Система должна работать 24/7 и восстанавливаться после перезапуска.
Обязательно предусмотреть:
очередь задач;
retry при временных ошибках;
таймауты;
обработку ошибок API и сети;
обработку ошибок загрузки медиа;
защиту от зависших задач;
восстановление очереди после перезапуска;
защиту от повторной публикации;
логирование.
Сбой одной задачи не должен останавливать систему целиком.
10. Логи
Необходимо сохранять историю обработки:
получение поста;
применённые правила;
сформированный контент;
выбранные площадки;
загрузка медиа;
попытки публикации;
результат;
ошибки и retry.
Основные логи желательно отображать в админ-панели.
11. База данных
Хранить:
источники VK;
публикации и медиа;
правила и настройки;
задачи очереди;
статусы;
результаты публикаций;
ошибки и историю попыток.
После перезапуска сервер должен полностью восстанавливать состояние системы.
Опубликован 03.09.2026 в 16:09 Последнее изменение: 03.09.2026 в 16:09