Con molta fatica e molto tempo "investito", sono riuscito a creare un feed più o meno sensato per la nostra Zotero group library. Riassumo qui problemi e soluzioni a futura memoria.
Problema:
- Abbiamo una group library condivisa. Vorrei creare un feed per tenerci aggiornati mutuamente e semplicemente delle aggiunte fatte da ognuno di noi (articoli, note).
- Se la group library fosse leggibile a chiunque, avrebbe già un feed generato automaticamente da Zotero.
- Non possiamo rendere la group library leggibile a chiunque, in quanto contiene anche pdf ottenuti da biblioteche alle quali l'ateneo è abbonato, pertanto non possiamo diffonderli.
Soluzione:
- Ho creato un feed che notifica di tutte le aggiunte (ho messo l'URL in manymoon).
- Le notifiche puntano all'oggetto nella libreria web. Il link è quindi accessibile solo previa basic authentication su Zotero (o su Google, vedi anche questo post)
- Le notifiche di note ed attachment puntano all'oggetto che li contiene (esempio: se una nota è attaccata ad un articolo, il post punta all'articolo, non alla nota). Questa caratteristica è importantissima, in quanto note/attachment non hanno un link all'oggetto che le contiene.
Quanto segue è utile solo per chi è interessato al funzionamento...
Realizzazione della soluzione (il perché della soluzione è spiegato più sotto):
- Ho creato due feed tramite Feed43:
- uno per la notifica di tutti gli elementi della group library. Contiene titolo dell'item e link all'oggetto nella libreria web.
- uno per la notifica dei soli elementi che sono note o attachment. Contiene link all'oggetto che contiene la nota o attachment.
- I feed sono dati in pasto a FeedRinse. Questo elimina i post del primo feed che sono di tipo attachment o note, e fa un merge dei due feed.
Ho provato molti strumenti per la conversione da pagina web a feed RSS. Il problema di fondo è che occorre accedere ad una pagina protetta con basic authentication, pertanto moltissimi strumenti sono inutilizzabili.
Ho scoperto che Zotero ha una API REST alla quale si accede via https. Ciò esclude automaticamente strumenti come Yahoo Pipes, feedity ed altri (permettono solo l'uso di http). Prova e riprova, ho trovato la giusta combinazione di URL. Ho fatto molte prove con dapper, ma lo strumento è inaffidabile. Alla fine ho usato feed43: semplice e limitato ma affidabile, fa ciò che promette e supporta https.
Le limitazioni principali di feed43 sono:
- se cambia qualcosa nel formato della risposta REST occorre modificare lo script feed43
- non permette la descrizione di field opzionali. Ciò spiega perché:
- ho dovuto fare due feed separati per "tutto, compreso note/attachment" e "solo note/attachment";
- il feed per "solo note/attachment" non contiene il titolo dell'oggetto (vedi più sotto);
Il pattern per "tutto" è questo (il primo % è il titolo, il secondo è il link all'oggetto, il terzo è il tipo):
Il pattern per "solo note/attachment" è questo (il primo % è l'identificatore dell'oggetto che contiene questa entry; il secondo % è il tipo di questa entry):
Ho tentato di mettere in quest'ultimo pattern anche l'elemento title ma non funziona; infatti quando trova una entry che non è di tipo note/attachment, e quindi non contiene un elemento link rel="up" , non è in grado di individuare correttamente la fine entry; usa la fine della prima entry successiva che è di tipo note/attachment (inizia alla entry N e termina alla entry N+1, oppure N+K).