Revue ha chiuso. Dove sono andati a finire gli arretrati de I deliri diari?
Per un certo periodo, dall'otto aprile 2021 fino al 7 dicembre 2022 ho spedito una newsletter a un manipolo di incoscienti che si sono volontariamente offerti di riceverla.
Usavo un sistema di pubblicazione per newsletter chiamato Revue, che poi è stato acquisito da Twitter e quindi ha chiuso.
Chiuso. Sparito.
E con lui tutti i numeri della newsletter.
Per fortuna avevano dato l'opzione di scaricare i contenuti offline, cosa che ho prontamente fatto.
Senonché... il file con i contenuti arretrati non era proprio immediato da usare. Era uno zippone con vari file, fra cui:
Cercando alternative, ho prima tentato di importare questi file in Substack, ma con esito zoppicante: i numeri venivano importati più o meno correttamente (senza immagini e senza anteprime di alcun tipo), ma mancavano tutti i testi introduttivi.
Poi ho provato con Beehiiv, un altro sistema per pubblicare e diffondere newsletter, ma l'unico modo di importare una precedente newsletter creata con Revue era quello di dargli l'URL della pagina di Revue. Ma Revue ha chiuso. Duh.
Per un po' ho lasciato perdere, poi - testardo - ho pensato: e se scrivessi io un programmino in Python per convertire i contenuti in file Markdown da caricare sul mio sito?
Così ho ripreso in mano il libro Automate the boring stuff with Python con cui sono riuscito a buttar giù uno schema:
Poi ho pensato: "Perché star qui a impazzire? Il programma lo faccio scrivere a ChatGPT!"
Così sono andato sul sito di OpenAI e ho chiesto a ChatGPT:
I need a Python program that takes a CSV file and outputs a markdown file, one for each row in the CSV file. Then I need to add the content of a JSON file to each generated markdown. Wait for me to give you sample files before giving me the solution.
Poi ho estratto qualche frammento dai due file principali, il CSV con i numeri e il JSON con tutti i contenuti, e ho creato due file più piccoli con cui fare i primi esperimenti. Li ho sottoposti a ChatGPT.
Inizialmente ho commesso un errore, scrivendo "Markdown" al posto di "JSON", pur dandogli come esempio un file JSON.
Così ChatGPT mi ha dato una soluzione ovviamente sbagliata. Dopo essermi scusato :) gli ho chiesto di correggere il codice e lui, puntuale, mi ha dato la prima versione del programma:
Ho verificato il programma, eseguendolo sul mio computer: funzionava.
Tuttavia, era solo uno scheletro. Mancavano alcune funzioni importanti.
Man mano le ho chieste al chatbot, eseguendo ogni volta il programma con i due file di input.
In un paio di occasioni si sono verificati degli errori: ho chiesto a ChatGPT che cosa significassero e me lo ha spiegato, come in questo esempio:
Tentativo dopo tentativo, ho affinato sempre di più il programma, inserendo anche qualche modifica manuale al codice fornito da ChatGPT. ChatGPT "ricorda" quanto viene detto nella conversazione, per cui è facile richiedere modifiche a una parte di codice senza fargli riscrivere il resto, come in questo caso, in cui gli ho chiesto di creare le cartelle senza spazi e senza caratteri non-ASCII:
Conclusione?
In qualche ora, a causa anche della mia scarsa esperienza con Python, ho messo assieme un programma perfettamente funzionante che in pochi secondi ha convertito un anno di newsletter su Revue in una serie di articoli in Markdown pronti da caricare sul questo sito.
Le differenze fra la versione originale della newsletter e i numeri qui pubblicati sono dovute alla mancanza delle immagini (che erano salvate sui server di Revue e quindi non più accessibili), alla mancanza di eventuali anteprime dei video non di YouTube e al modo un po' astruso in cui i contenuti erano stati salvati da Revue all'interno del file JSON.
Per il resto, è (o sarà, sto ripassando i vari numeri) tutto qui, a casa.