La mayor parte de las veces que publicamos algun documento ó imagen en la web, en tu cuenta de Flickr.com, tu web ó un foro, probablemente tardamos más tiempo iniciando un programa de transferencia, logeandonos y cerrando el programa que en hecho de copiar puramente el fichero. Para transferencias rapidas, ó que no requieren más control sobre el envio simplemente asignar un nombre al fichero podemos crearnos un script bien sencillo que automatize esto.

Y para automatizar esto, nuestro mejor amigo se llama: CURL.

curl es una herramienta de linea de comandos para la transferencia de ficheros con sintaxis URL, soportando protocolos FTP, FTPS, TFTP, HTTP, HTTPS, TELNET, DICT, FILE y LDAP. Curl soporta HTTPS certificates, HTTP POST, HTTP PUT, FTP subida, subida basada en formularios HTTP, proxies, cookies, user+password autentificación (Basic, Digest, NTLM, Negotiate, kerberos…), resumen de transferencia de archivos, proxy tunneling y mucho más.

La parte que nos interesa es en la que dice: “subida basada en formularios HTTP”, en otras palabras podemos crear un script que se conecte a una pagina, introduzca nombre de usuario y contraseña rellando el formulario que se encuentre y necesario para formalizar el envio de documentos, justo lo que tenemos que hacer cada vez que enviamos una foto a nuestra cuenta en Flickr.

  • Crea un nuevo archivo de texto.
  • En el texto reemplaza tu@mail y tucontraseña:

[Desktop Entry]
Actions=flickr
Encoding=UTF-8
ServiceTypes=image/*
X-KDE-Submenu=Publicar
X-KDE-Submenu[es]=Publicar
[Desktop Action flickr]
Icon=flickr
Name=en Flickr
Name[es]=en Flickr
Exec=curl -s -F photo=@%f -F email=tu@email.com -F password=tucontraseña -F title="%n" -F tags="`kdialog --inputbox Tags para la foto %n`" -F is_public=1 http://www.flickr.com/tools/uploader_go.gne

Por partes:
[Desktop Entry] en este area definimos que y cuando se vá a mostrar el menú. Entre otras cosas le decimos que acción debe ejecutar (la acción FLICKR – definida a continuación).[Desktop Action flickr]
En este area se define el icono, nombre asociado a la acción y la acción propiamente ó un script de acciones, en nuestro caso una llamada a CURL:
curl -s -F photo=@%f -F email=tu@email.com -F password=tucontraseña -F title="%n" -F tags="`kdialog --inputbox Tags para la foto %n`" -F is_public=1 http://www.flickr.com/tools/uploader_go.gne
La acción en si misma es una simple orden a CURL en: modo silencioso (-s) y con los valores que debe utilizar para completar los campos del formulario (-F) de la pagina (uploader_go.gne). Al lanzarse, dicha acción aparece una ventana de dialogo (kdialog) que nos solicita los terminos a utilizar en el input “tags” (-F tags=”kdialog….”).

  • Guarda el archivo como (p.ejm) publicar.desktop en ~/.kde/share/apps/konqueror/servicemenu/

Para añadir más acciones, crea tantos campos [Desktop Action xxxx] como te interese y añade los nombres de las acciones en [Desktop Entry] separandolos con punto y coma. Algo como:[Desktop Entry]
Actions=accion1;accion2;accion3
xxx
[Desktop Action accion1]
xxx
[Desktop Action accion2]
xxx
[Desktop Action accion3]
xxx

Asi, para enviar cualquier archivo a tu servidor via FTP, podrias usar:Exec=curl -s -T %f -u usuario:contraseña ftp://ftp.dominio.com:21
En mi caso utilizo las siguientes lineas:[Desktop Entry]
Actions=flickr;homepage
Encoding=UTF-8
ServiceTypes=image/*
X-KDE-Submenu=Publicar
X-KDE-Submenu[es]=Publicar
[Desktop Action flickr]
Icon=flickr
Name=en Flickr
Name[es]=en Flickr
Exec=curl -s -F photo=@%f -F email=mi@correo.es -F password=contraseñaflickr -F title="%n" -F tags="`kdialog --inputbox Tag %n`" -F is_public=1 http://www.flickr.com/tools/uploader_go.gne > /dev/null &
[Desktop Action homepage]
Icon=trebol-a
Name=en Trebol-a.com
Name[es]=en Trebol-A.com
Exec=curl -s -T %f -u usuario:contraseña ftp://ftp.dominio.com:21 >/dev/null &

nota: añadiendo /dev/null & al final del comando enviamos la orden al segundo plano sin perder el foco, interesante sobre todo si vas a enviar archivos muy grandes, al enviar jpgs “normales” no vas a notar diferencia.
Al hacer click derecho sobre cualquier imagen aparece así:
Codigo inicial destripado del Gnudista