Como iterar sobre todos os tópicos para exportá-los como Markdown?

Olá, pessoal. Estou analisando opções para arquivar conteúdo em um site Discourse. Encontrei o tópico sobre como criar e servir um WARC, o que me dá algo para trabalhar, mas eu realmente gostaria de exportar todos os tópicos/threads/o que quer que seja como Markdown.

Li isto: Export topic as markdown

Agora eu gostaria de saber como iterar sobre todos os URLs de tópicos para que eu possa transformá-los em URLs /raw/ e baixar todos os threads de tópicos como Markdown. Existe alguma maneira fácil de obter uma lista de todos os URLs de tópicos no site? Preciso abrir um console Rails? Existe uma única classe Ruby que pode enumerar todos os URLs de tópicos? Algo?

Muito obrigado.

1 curtida

Eu cheguei lá, mas ainda adoraria ouvir sobre caminhos mais fáceis.

  1. Use o administrador do Discourse para baixar um backup do site.
  2. Encontre o dump do banco de dados PostgreSQL dentro do arquivo de backup, então restaure-o para um banco de dados local.
  3. select id from topics, então cole isso em um arquivo.
  4. Use sed ou qualquer um de seus “primos” para transformar os IDs dos tópicos em https://meu-site-discourse/raw/<ID do tópico>
  5. for...; do wget $url; done
  1. Recupere o JSON da categoria, por exemplo https://meta.discourse.org/c/support.json (que redireciona para https://meta.discourse.org/c/support/6.json)
  2. Obtenha o primeiro lote de IDs de tópicos do array topic_list.topics nesse JSON.
  3. Recupere topic_list.more_topics_url e vá para #2

Obrigado por isso. Como eu iteraria sobre as categorias?

solicite /site.json e itere sobre o array categories.

1 curtida