Archimista tips & tricks #13: copiare o selezionare le cartelle contenenti gli oggetti digitali di un fondo (script)

Questa è una situazione classica, tanto è vero che è stata chiesta spesso nel forum: quando si esporta in AEF vengono esportati i soli dati (link etc) degli oggetti digitali, non le immagini stesse.

Queste rimango nella directory delle immagini di Archimista e se si vuole copiare anche queste l’operazione va fatta a mano. Recita il vetusto (ma in questo ancora valido) manuale:

Si ricorda inoltre che degli oggetti digitali vengono esportate le informazioni (associazione con l’entità, indirizzo, titolo, descrizione), ma non il file stesso che dovrà essere copiato a mano nella directory predisposta per ospitare gli asset digitali (di default digital_objects all’interno di application/public).

E la procedura secondo me funziona abbastanza nel senso che di solito ha senso copiare le immagini solo alla fine, non serve portarsele dietro sempre nel file AEF (un po’ come quando si scrive in word e sarebbe cosa buona e giusta non incorporare le immagini ma tenerle separate).

Ma anche qui c’è un ma. E’ tutto molto bello finché sulla macchina abbiamo un solo fondo. Certo con un solo fondo tutto ciò che sta dentro a digital_objects pertiene a quel fondo. Quando i fondi diventano 50, di cui 30 hanno immagini (centinaia di immagini) collegate ecco che diventa un filo (eufemismo) complicato riuscire a sapere quali cartelle fra le migliaia presenti in digital_objects copiare.

La soluzione ottimale sarebbe poter scegliere in fase di esportazione se includere nel file AEF anche le immagini (intesi proprio i file) che così verrebbero copiati automaticamente in fasi di importazione. Nell’attesa di un’eventuale miglioria in tal senso ecco uno script che risolve questa situazione.

Lo script seleziona tutti gli oggetti digitali collegati a un fondo (ai suoi sottolivelli e alle unità che compongono il fondo) e elenca le cartelle in cui sono o copia direttamente queste cartelle in una destinazione a piacere. Come funziona?

Ecco il solito Q&A

D: Cosa devo fare per usare lo script?
R: Scaricare lo script, copiarlo in una cartella, ad esempio quella di Archimista.
Aprirlo con un editor di testo, ad esempio notepad++
Leggere i commenti (le parti dopo #), in particolare la parte iniziale dove bisogna dichiarare le variabili. Se non le si inserisce tutte lo script non parte. Le variabili sono:

dbname cioè dov’è il database di archimista da usare. L’indirizzo pre-inserito è giusto se si sta usando una macchina windows a 64bit e si è installato Archimista nella posizione di default.  Su una macchina a 32bit sarà c:/Program Files/Archimista/application/archimista.db. Nota bene Ruby vuole l’uso della slash (/) invece del backslash (\) tipico di Windows.

fond_id ossia l’id del fondo su cui vogliamo operare. Come lo ricavo? Invece di lanciare archimista dall’icona aprite un qualunque browser e collegatevi all’indirizzo localhost:3000. Vedrete la maschera di login di Archimista. Del resto l’icona non fa altro che collegarsi a quell’indirizzo interno al vostro computer. Ora navigate nel fondo su cui volete operare. Nella barra degli indirizzi avrete qualcosa come http://localhost:3000/fonds/9530/treeview. Ecco il numero dopo fonds è il vostro id del fondo (in questo caso 9530).

img_dir_pub è la cartella degli oggetti digitali di Archimista. L’indirizzo indicato di base nello script è corretto se avete installato Archimista su Windows a 64 bit usando il percorso di default. Rimando al punto dbname se invece si è in una situazione diversa.

dest  la cartella di destinazione dove volete che le immagini siano copiate. Es d:/Downoloads/immagini_copiate/

Ok questi sono i parametri di base. Per avviare lo script avviare il prompt dei comandi di windows, spostarsi dove si è salvato lo script e avviarlo con il comando

ruby.exe copy-dobj.rb

se non avete ruby.exe nel path vi dirà che non conosce il programma, allora dovete dargli il percorso completo… tenendo conto che ruby è dentro la cartella ruby\bin che sta a sua volta dentro Archimista. Quindi il comando potrebbe essere qualcosa come

"C:\Program Files (x86)\Archimista\ruby\bin\ruby.exe" copy-dobj.rb

Lo script copierà le cartelle contenenti oggetti digitali collegati a quel fondo nella cartella indicata in dest. Inoltre creerà un file (log.txt) all’interno della cartella in cui è lo script con una lista delle cartelle. Se si vuole solo la lista senza far copiare le cartelle allo script commentare (aggiungere # davanti) riga 65 dove c’è “copy_dobj(list)” se si vuole solo copiare senza file di log commentare riga 66 print_dobj(list).

D: Funziona anche su linux e Mac?
R: Il 99% si. Ovviamente indicando opportunamente i percorsi nelle variabili. Potrebbe essere necessaria qualche piccola modifica per adattarlo a database diversi da sqlite (ma a naso credo basti cambiare la riga 46dove viene caricato il database)

 

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...