Menú de contexto para publicar en Picasa
lunes, 16 de agosto de 2010Entre algunos de los cambios que voy poco a poco realizando en Cuaderno de campo esté el de transferir algunas de las imágenes que acompañan los apuntes a una cuenta en Picassa, el servicio de alojamiento de imágenes ofrecido por Google. De esta manera descargo de trabajo a este ordenador y despejo mi cuenta en Flickr para dedicarla exclusivamente a fotografias, no screenshot ni imágenes de apoyo.
Asi es que, como en adelante tengo que publicar bastante imágenes en Picasa y no es cuestión de andar visitando la página y su formulario de uploading, me hice un script y su correspondiente menú de contexto para subir imágenes con un solo click y obtener la url de la imagen inmediatamente después de la subida. Como además el tamaño de la imagen a publicar se indica a traves de la propia url no es necesario siquiera visitar Picasa para nada.
El script hace/necesita:
- Conecta con Google y obtiene código de autentificacion.
- Necesitas: cuenta en Google y tu email+contraseña de dicha cuenta.
- Una vez conseguido código de autentificacion conecta con la cuenta Picasa asociada a dicha cuenta y sube via curl todos los archivos pasados al album indicado en el script.
- Necesitas: número ID del album de destino. Para obtenerlo, crea un album en tu cuenta de Picasa y obten su identificador consultando el RSS de dicho album. Algo como (negrita) : http://picasaweb.google.com/data/feed/base/user/trebol.a/albumid/5308347541344869297?alt=rss&kind=photo&hl=es
- Una vez finalizada la subida del archivo/archivos emite cuadro de dialogo donde se indica las urls de la páginas y la urls de la imagenes a tamaño original subidas
El contenido del script es el siguiente:
#!/bin/bash
albumDestino="123456789"
idUsuario="trebol.a"
emailUsuario="mi@email.com"
passUsuario="contraseña1234"
respuestaFile="~/.respuestaGoogle"
contador=0
mensaje=""
if [ -f "$1" ]; then
dialogo=$(kdialog --progressbar "Espere..." ${#@})
dcop $dialogo showCancelButton true
solicitudAutentificacion=$(curl https://www.google.com/accounts/ClientLogin -d Email=$emailUsuario -d Passwd=$passUsuario -d accountType=GOOGLE -d source=Google-cURL-Example -d service=lh2)
autentificacion=`echo "$solicitudAutentificacion" | grep "Auth" | sed -r 's/Auth=(.*)/\1/'`
for archivo in "$@"; do
let contador++
dcop $dialogo setProgress $contador
if [ -f "$archivo" ]; then
dcop $dialogo setLabel "Espere subiendo...$(basename $archivo)"
if [ "true" = `dcop "$dialogo" wasCancelled` ]; then break; fi
mimetype=$(echo -n "image/";identify "$archivo" | cut -d " " -f2 | tr [A-Z] [a-z])
curl --silent -o "$respuestaFile" --request POST --data-binary "@$archivo" --header "Slug: `date "+$(basename foto.jpg)_%Y%m%d_%H%M%S"`" --header "Content-Type: $mimetype" --header "Authorization: GoogleLogin auth=$autentificacion" http://picasaweb.google.com/data/feed/api/user/$idUsuario/albumid/$albumDestino
fotoId=`cat "$respuestaFile" | sed -r 's/.*<id>([^<]*)photoid\/([^<]*)<\/id>.*/\2/g'`
fotoUrl=`cat "$respuestaFile" | cut -d"=" -f13 | cut -d"'" -f2`
mensaje+="\n\n$archivo\nPagina:<a href='http://picasaweb.google.com/trebol.a/DropBox#$fotoId'>http://picasaweb.google.com/trebol.a/DropBox#$fotoId</a>\nUrl imagen: <a href='$fotoUrl'>$fotoUrl</a>"
else
echo "El archivo ($archivo) no se encuentra"
fi
done
dcop $dialogo close
echo -e "$mensaje" | kdialog --textbox /dev/stdin 430 300
else
echo "Nada que hacer, bye"
exit
fi
exit
Personaliza la cabecera de dicho script con tus datos y guardalo en tu ~/bin como publicar_en_google. Hazlo ejecutable (chmod +x publicar_en_google)
Ahora creamos el menú de contexto para usar dicho script. Abre un editor de texto y escribe algo como:
[Desktop Entry]
Encoding=UTF-8
ServiceTypes=image/*
Actions=toPicasa
Name=Publicacion web
X-KDE-Submenu=Publicar Web
[Desktop Action toPicasa]
Name=a Picasa
Exec=/home/tu_user/bin/publicar_en_google %F
Icon=picasa
Guarda este contenido como toPicasa.desktop (p.ejem, el nombre es indiferente, la extensión si es obligatoria) en ~/.kde/share/apps/konqueror/servicemenus y cliquea sobre cualquier imagen para subirla de forma inmediata.
Al finalizar el proceso de subida aparecerá un menú como el siguiente:
Donde te informa que la imagen subida está disponible en la url
http://lh6.ggpht.com/_j0yUu1KBjps/TGlNPT1DovI/AAAAAAAABb0/eTP4TJij3BI/foto.jpg_20100816_163746.png
Para obtener la versión de esta imagen a 200 pixel bastaría con apuntar a (negritas)
http://lh6.ggpht.com/_j0yUu1KBjps/TGlNPT1DovI/AAAAAAAABb0/eTP4TJij3BI/s200/foto.jpg_20100816_163746.png
Mas fácil imposible.
Balbor
#1/ 18 de August/2010 a 16:09:30
Otros comentarios de «Balbor»
Wow! Eres todo un crack customizando Linux.
Una pregunta, ¿podría usarlo en Mac OS X 10.6.4?
¿Cual sería el path "~/.kde/share/apps/konqueror/servicemenus" en Mac?
Trebol-A
#2/ 18 de August/2010 a 18:43:33
Otros comentarios de «Trebol-A»
Gracias Balbor,
no te sé decir ni como ni cuando trabajaría eso en un Mac pero ten encuenta que la ruta que indicas, donde se guarda el archivo .desktop, es una ruta del propio konqueror, ni siquiera de KDE, asi es que, de funcionar lo debería de hacer en otra ubicación.... pero ya te digo que hablo de suposiciones, nada cierto.
Saludos
19 de November, 2024 @ 01:33