Necesitaba un método para archivar mi foro de Discourse en GitHub, pero descubrí que muchos de los scripts disponibles estaban desactualizados o rotos. Así que decidí crear algunos scripts sencillos que cumplen mis requisitos. Si bien no son perfectos y todavía tienen algunos problemas menores, satisfacen mis necesidades actuales ya que no tengo mucho más tiempo para dedicar a este proyecto.
https://github.com/c0mmando/discourse-to-markdown-archiver
- Archiva nuevas publicaciones como JSON.
- Renderiza temas a archivos Markdown.
- Soporte para múltiples sitios de Discourse simultáneamente (un sitio a la vez).
- Seguimiento de metadatos separado por sitio (fecha de última sincronización e IDs de publicaciones archivadas).
- Renderizado concurrente de temas utilizando un grupo de hilos para mejorar el rendimiento.
- Retroceso exponencial para solicitudes HTTP para manejar límites de tasa o errores transitorios.
https://github.com/c0mmando/discourse-to-github-archiver
- Archivar Publicaciones: Guarda cada publicación de Discourse en un archivo JSON, organizado por fecha de creación.
- Renderizado Concurrente: Renderiza temas de forma concurrente, convirtiendo las publicaciones de HTML a Markdown.
- Descarga de Imágenes: Procesa HTML para descargar imágenes y reescribe las URL de las imágenes a rutas relativas.
- Actualización de Metadatos: Realiza un seguimiento de las publicaciones archivadas para evitar duplicados.
- Actualizaciones Incrementales de README: Actualiza un
README.mdcon una tabla de contenido para una fácil navegación.
Aquí hay un ejemplo de foro archivado en Github:
https[://]github[.]com/c0mmando/forum.hackliberty.org