Come iterare su tutti gli argomenti per esportarli come Markdown?

Ciao a tutti. Sto valutando opzioni per archiviare contenuti su un sito Discourse. Ho trovato la discussione sulla creazione e la distribuzione di un WARC, che mi dà qualcosa su cui lavorare, ma mi piacerebbe davvero esportare tutti gli argomenti/thread/ecc. come Markdown.

Ho letto questo: Export topic as markdown

Ora vorrei sapere come iterare su tutti gli URL degli argomenti in modo da poterli trasformare in URL /raw/ e scaricare tutti i thread degli argomenti come Markdown. Esiste un modo semplice per ottenere un elenco di tutti gli URL degli argomenti sul sito? Devo aprire una console Rails? Esiste una singola classe Ruby che può enumerare tutti gli URL degli argomenti? Qualcosa?

Molte grazie.

1 Mi Piace

Ci sono arrivato, ma mi piacerebbe comunque sentire parlare di percorsi più semplici.

  1. Utilizza l’amministratore di Discourse per scaricare un backup del sito.
  2. Trova il dump del database PostgreSQL all’interno del file di backup, quindi ripristinalo in un database locale.
  3. select id from topics, quindi incollalo in un file.
  4. Usa sed o uno dei suoi simili per trasformare gli ID degli argomenti in https://my-discourse-site/raw/<topic ID>
  5. for...; do wget $url; done
  1. Recupera il JSON della categoria, ad esempio https://meta.discourse.org/c/support.json (che reindirizza a https://meta.discourse.org/c/support/6.json)
  2. Ottieni il primo batch di ID argomento dall’array topic_list.topics in quel JSON.
  3. Recupera topic_list.more_topics_url e vai al punto #2

Grazie per questo. Come potrei quindi iterare sulle categorie?

richiedi /site.json e itera sull’array categories.

1 Mi Piace