Ciao a tutti, come avevo anticipato ho lavorato ad una soluzione automatica per rimpiazzare le foto in un album di Picasa. Purtroppo ho riscontrato dei problemi di eleganza: avrei voluto sfruttare XPath per recuperare le info dal feed con cui Picasa risponde ma sono incappato in problematiche tecniche di difficile risoluzione. Inoltre sto ancora lavorando alla selezione di immagini locali da inviare ma per adesso se si crea a mano la lista di foto queste vengono sostituite a quelle online.
Ci tengo a precisare che per il momento siamo ancora alla versione 0.1b, è più che altro una prova di concetto ma funziona e se volete provarlo per aiutarmi a migliorarlo ve ne sarei grato.
Per il momento ho preferito appoggiarmi su un album creato manualmente dall'utente ma non è così difficile crearne uno in automatico in caso l'album specificato non esista.
Al momento sono abbastanza soddisfatto di questo primo risultato, adesso pensavo di usare gli exiftool per selezionare le foto con un determinato tag in modo da automatizzare la selezione e rendere tutto il processo indipendente dall'azione umana.
Aperto ad ogni critica vi saluto.
Ci tengo a precisare che per il momento siamo ancora alla versione 0.1b, è più che altro una prova di concetto ma funziona e se volete provarlo per aiutarmi a migliorarlo ve ne sarei grato.
#!/bin/bash
#qui inserire il proprio indirizzo gmail con password
email=____________@gmail.com
password=___________
#il nome dell'album va scritto senza spazi
album=albumdiprova
ver="0.1b"
to_delete=$(mktemp)
to_upload=$(mktemp)
auth=$(curl --silent https://www.google.com/accounts/ClientLogin \
-d Email=$email \
-d Passwd=$password \
-d accountType=GOOGLE \
-d source=Picasa-Scrambler-$ver \
-d service=lh2 | grep ^Auth | cut -c 6- )
#Seleziona tutte le foto dell'album per cancellarle
curl --silent --header "Authorization: GoogleLogin auth=$auth" \
"http://picasaweb.google.com/data/feed/api/user/$email/album/$album/" \
| tidy -xml -indent -quiet | grep -A 1 "link rel='edit'" \
| grep href | cut -f 2 -d \' > $to_delete
#Seleziona le foto da inserire
#per il momento le foto devono essere elencate in un file
cp insert-list.txt $to_upload
#Inserisce nell'album le foto selezionate
for i in $(cat $to_upload)
do
curl --silent --request POST --data-binary "@$i" \
--header "Content-Type: image/png" \
--header "Authorization: GoogleLogin auth=$auth" \
"http://picasaweb.google.com/data/feed/api/user/$email/album/$album"
done
#Cancella le foto selezionate
for i in $(cat $to_delete)
do
curl --silent --request DELETE \
--header "Authorization: GoogleLogin auth=$auth" "$i"
done
Per il momento ho preferito appoggiarmi su un album creato manualmente dall'utente ma non è così difficile crearne uno in automatico in caso l'album specificato non esista.
Al momento sono abbastanza soddisfatto di questo primo risultato, adesso pensavo di usare gli exiftool per selezionare le foto con un determinato tag in modo da automatizzare la selezione e rendere tutto il processo indipendente dall'azione umana.
Aperto ad ogni critica vi saluto.
Commenti