Buenas,
pues aunque no era la idea original para lo que necesitaba la ayuda, le he sacado una nueva utilidad al exiftool y la función de Redy.
Le estaba dando vueltas en la cabeza a que eso de decirle a la gente que se instalase el Firefox con su plugin de exif para poder ver en el mapa dónde se ha hecho la foto era un poco complejo para quienes no están acostumbrados a estas cosas o simplemente cuando estamos con un ordenador que no es el nuestro.
Además, el plugin mencionado no enlaza a Openstreetmap e incluso en el enlace al de Google Maps no pone el marcador, con lo que lo tienes que adivinar. Así que me he hecho un pequeño script que básicamente le das una foto o un grupo (con asteriscos) de tu disco duro y te genera el código BBC para ponerlo en el foro. El que conseguimos a base de pinchar en los iconos y emoticonos.
Es responsabilidad del forero georeferenciar las fotos y subirlas al almacén, como paso previo a redactar el mensaje en el foro.
El script se puede ir mejorando y ampliando. De momento, como siempre, quería algo que funcionase. Parte de la base de que tienes una cuenta en el almacén cuya url base tienes que modificar con la tuya. Como sabéis la última parte es el código de usuario. El mío es el 10002 y cada uno sabe el suyo. Si las fotos no las tenéis en el almacén, poner la url base de las vuestras, pero tenéis que cambiar también el prefijo para las fotos medianas más adelante, que en el almacén es "normal_".
#___ inicialización de variables ___
carpeta_almacen="http://www.fotolibre.org/albums/userpics/10002/"
url_base="http://www.openstreetmap.org/?zoom=13"
tipo_mapa="&layers=00B0FTF" #___ cycle map ___
#___ función de Redy para convertir las coordenadas de formato exiftool al de los mapas ___
function trad_cord
{
local COORD SIGN
read COORD SIGN <<<$1
case $SIGN in
E*|N*|e*|n*)
SIGN=""
;;
W*|S*|w*|s*)
SIGN="-"
;;
esac
echo ${SIGN}${COORD}
}
#___ borramos fichero con ruta de la carpeta ___
echo -e "$(pwd)\n\n" > mensaje-bbc.txt
while (($# > 0 )) # Mientras siga habiendo argumentos
do
if file -i $1 |grep -q "image/jpeg"
then
foto=$1
echo $foto
lon=$( trad_cord "$(exiftool -S -t -GPSLongitude -c %.6f "$foto")" )
lat=$( trad_cord "$(exiftool -S -t -GPSLatitude -c %.6f "$foto")" )
url_enlace="$url_base$tipo_mapa&mlat=$lat&mlon=$lon"
#___ código de la foto ___
codigo_bbc="[center]\n[url=$carpeta_almacen$foto][img]$carpeta_almacen""normal_$foto[/img][/url]"
#___ código del enlace al mapa ___
codigo_bbc="$codigo_bbc\n[url=$url_enlace]Ver en el mapa donde fue tomada esta foto (Openstreetmap.org)[/url]\n[/center]\n\n"
#___ añadimos el código bbc de cada foto al fichero ___
echo -en $codigo_bbc >> mensaje-bbc.txt
else
echo "Error $1 no es un fichero jpg" >&2
fi
shift # Descarto el argumento que acabo de procesar y a por el siguiente
done
Como veis, hay más código de Redy por ahí...
El uso es llamarlo con la foto o fotos que queramos.
$ generar_bbc_foto f-komodo-IMG_9838-c01.jpg
$ generar_bbc_foto f-*
Graba un fichero mensaje-bbc.txt con el código que hay que poner en el foro. Por ejemplo:
[center]
[url=http://www.fotolibre.org/albums/userpics/10002/f-komodo-IMG_9834-c01.jpg][img]http://www.fotolibre.org/albums/userpics/10002/normal_f-komodo-IMG_9834-c01.jpg[/img][/url]
[url=http://www.openstreetmap.org/?zoom=13&layers=00B0FTF&mlat=-8.656434&mlon=119.718312]Ver en el mapa donde fue tomada esta foto (Openstreetmap.org)[/url]
[/center]
Que produce la siguiente salida.
Se admiten cualquier tipo de comentarios o sugerencias tanto sobre el código, como sobre el texto que he puesto para enlazar que no me convence mucho o cualquier cosa relacionada.
El siguiente paso como ya dije es generar información para poner las miniaturas de las fotos en un mapa.
Saludos,
Colegota