Compartir

Compartir en GNU Social Compartir en Diaspora*

Informando de mi localización

Hoy, bueno realmente fue ayer, estaban por GNU Social viendo como enviar de una forma sencilla la localización donde nos encontramos a nuestra cuenta de GNU Social o a algún contacto en XMPP.

La idea es simple y la verdad es que existen ya aplicaciones en android que nos pueden servir, como por ejemplo MyPosition, una app libre que recupera nuestras coordenadas (longitud y latitud) y nos permite compartirlas a través de cualquier aplicación que tengamos en el móvil.

Los únicos peros que tiene esta aplicación es que el mensaje que envía no se puede modificar (parece que en las últimas versiones ya se puede cambiar) y además muestra un enlace a Google Maps (no me gusta), aunque también muestra un enlace a OpenStreeMap.

La opción parece clara, o se convence al autor de que permita configurar el mensaje o se hace un fork a partir de su código fuente. Como esto para mí queda fuera de mis posibilidades se me ha ocurrido una chapucera solución utilizando Termux y sus extensiones Termux:API y Termux:Widget.

Sí, Termux es para tener una terminal completamente funcional en android, pero tampoco va a ser necesario ejecutar comandos a mano en la terminal, sino que nos haremos/copiaremos un script muy simple en bash (proporcionado por Termux) que usará Termux:API para acceder al GPS del móvil y para compartir el mensaje que construimos con las aplicaciones del móvil y mediante Termux:Widget lo mostraremos en la pantalla del móvil para simplemente ejecutarlo con un click.

No voy a entretenerme en detalles sobre Termux porque sus creadores lo explican mucho mejor en su página de ayuda por lo que pego a continuación el script con el que envío el mensaje de localización:

#!/data/data/com.termux/files/usr/bin/bash
termux-location > ${HOME}/location.txt
latitude=$(cat ${HOME}/location.txt | grep "\"latitude\"" | cut -d":" -f2 |  sed "s/ //g" | sed "s/,$//g")
longitude=$(cat ${HOME}/location.txt | grep "\"longitude\"" | cut -d":" -f2 |  sed "s/ //g" | sed "s/,$//g")
if [ "${latitude}" != "" -a "${longitude}" != "" ]; then
   echo "Ahora me puedes encontrar en http://www.openstreetmap.org/?mlat=${latitude}&mlon=${longitude} - Enviado desde Localizacion.sh con Termux-API" | termux-share -a send
fi
rm ${HOME}/location.txt