Мне нужен был способ архивирования моего форума Discourse на GitHub, но я обнаружил, что многие доступные скрипты устарели или не работают. Поэтому я решил создать простые скрипты, которые соответствуют моим требованиям. Хотя они не идеальны и имеют несколько незначительных проблем, они отвечают моим текущим потребностям, так как у меня нет больше времени на этот проект.
https://github.com/c0mmando/discourse-to-markdown-archiver
- Архивирование новых постов в формате JSON.
- Конвертация тем в файлы Markdown.
- Поддержка одновременной работы с несколькими сайтами Discourse (по одному сайту за раз).
- Отдельный учёт метаданных для каждого сайта (дата последней синхронизации и ID архивированных постов).
- Параллельная обработка тем с использованием пула потоков для повышения производительности.
- Экспоненциальная задержка при HTTP-запросах для обработки ограничений скорости или временных ошибок.
https://github.com/c0mmando/discourse-to-github-archiver
- Архивирование постов: Сохранение каждого поста Discourse в отдельный JSON-файл, организованный по дате создания.
- Параллельная обработка: Одновременная конвертация тем, преобразование постов из HTML в Markdown.
- Скачивание изображений: Обработка HTML для загрузки изображений и замена ссылок на изображения относительными путями.
- Обновление метаданных: Отслеживание архивированных постов для избежания дубликатов.
- Инкрементальное обновление README: Обновление файла
README.mdс оглавлением для удобства навигации.
Вот пример архивированного форума на GitHub:
https[://]github[.]com/c0mmando/forum.hackliberty.org