PaBLoX ya nos ha mostrado TTYtter, una interfaz de consola script para interactuar con Twitter escrito en Perl, que parece se completísimo, dentro de las limitadas opciones visuales que tiene el intérprete de comandos, sin embargo me dio la tontera y quise programar un script que sirviera para únicamente enviar tweets a la twittosfera de manea rápida, sin que interfiera con el trabajo en la terminal, sin mas, aquí está el script:
#!/bin/bash
# Este es un script muy simple para poder twittear desde nuestra consola
# en GNU/Linux, usted es totalmente libre de modificarlo a su gusto.
# Toda sugerencia puede hacerla a fportales(arroba)ymail(punto)com
echo 'Vamos a Twittear :B'
echo 'Por favor ingrese su username:'
read username
# ingresar el tweet
echo 'Ingrese su tweet :D'
read tweet
flag0=${#tweet}
echo 'Ha escrito: '$flag0' caracteres' # número de caracteres del tweet
# si sobrepasamos los 140 caracteres, deja de ejecutarse D:
if [ $flag0 -ge 140 ]; then
echo 'Stop! has sobrepasado el límite de caracteres :('
exit
else
echo 'La cantidad de caracteres es correcta, continuemos :)'
fi
# El siguiente bloque pide la contraseña del usuario
echo 'Por favor ingrese su password:'
# Algoritmo para ocultar la contraseña
# Primero guardamos en una variable la configuración de la terminal
config_o=`stty -g`
# Sacamos el echo de la consola (no se ve lo que ingresamos)
stty -echo
# guardemos la pass en una variable
read password
# devolver la terminal en el estado anterior
stty $config_o
# el algoritmo pueden encontrarlo en:
# http://www.mail-archive.com/programacion@lugro.org.ar/msg00124.html
echo 'Actualizando...' # ¿se necesita más explicación?
# Sacamos el echo de la consola para no ver la salida, esta se guarda
stty -echo
# Envío de la actualización, se guarda la salida en el archivo 'resultado.txt'
curl -u "$username":"$password" -d status="$tweet" http://twitter.com/statuses/update.xml > resultado.txt
# devolver la terminal en el estado anterior
stty $config_o
# busca cierta cadena dentro del archivo 'resultado.txt'
evaluacion=`egrep "Could not authenticate you" resultado.txt`
flag1=${#evaluacion}
if [ $flag1 == 44 ]; then
echo 'No se ha podido autenticar. Inténtelo nuevamente.'
else
echo '¡Éxito!'
fi
# ya no tiene sentido mantener el archivo resultados.txt, así que se elimina
rm resultado.txt
echo 'Gracias por usar este script, si le gustó, por favor, siga a @fportales :D'
## Fin del Script
Ahora paso a explicar como funciona xD.
Lo primero que se pide es el username, luego el tweet, si este supera los 140 caracteres, termina la ejecución del script, luego la password, si se preguntan el por qué la password al final, es porque se mide el largo del tweet, más que nada para proteger la privacidad del usuario, ya que la contraseña se esconde. Después de esto se envía la autentificación a la API de Twitter junto con el tweet, se muestra en pantalla el resumen de cURL y se notifica sobre el éxito o FAIL de la operación.
Estos son los pasos para su ejecución:
- Instalar cURL, en Debian/Ubuntu esto se logra con
sudo aptitude update && sudo aptitude install curl - Copiar el código que puse ahí arriba y pegarlo en un editor como kwrite o gedit. o si prefieren, pueden descargar este .tar.gz que tra dentro el script.
- Guardarlo con un nombre cualquiera, a falta de originalidad lo guardé en la ruta
/home/fportales/twitter - Darle permisos de ejecución, para esto abrimos una terminal navegamos con cd a la ruta donde está guardado y escribimos
chmod +x twitterdonde twitter es el nombre que le pusimos al archivo. - Escribimos
./twittery voilá! podemos empezar a twittear :D
También les dejo una demostración de lo amigable que es la “interfaz”
Aquí pueden comprobar que funciona el script! (si, el hostname es Lagrange). Ahora con este script podrán twittear el ‘FFFFFFFUUUUUUUU el servidor X c*gó :@’ cada vez que se les caiga el entorno gráfico, o en realidad twittear lo que les plazca xD. Antes de terminar, quisiera agradecer a @sebasak por haberme ayudado con las sentencias en Bash :D












Vamos... sabemos que quieres comentar algo ;)