Actualizando Twitter desde Línea de Comandos

Buscando formas más rápidas de actualizar mi status en Twitter, encontré algunas páginas que recomendaban utilidades binarias para Windows y Unix, pero la mejor fue la que explicaba cómo hacerlo fácilmente con cURL (también se puede adaptar para usar wget).

Luego de encontrar algunos defectos (como la imposibilidad de poner símbolos especiales como el ampersand (&), decidí hacer un script mejorado:

#!/usr/bin/env bash

CURL=`which curl`
PERL=`which perl`
OUT=`mktemp /tmp/twitter.XXXXXXXX`
T_USER=twitter_user
T_PASS=twitter_pass
if [ "X$@" == "X" ]; then
    echo -n "What are you doing?: "
    read STATUS
else
    STATUS=$@
fi

ENC_STATUS=`${PERL} -MURI::Escape -e "print uri_escape('${STATUS}');"`

echo "Updating Twitter Status for '${T_USER}'..."

$CURL --progress-bar -o $OUT \
      --basic \
      --user "${T_USER}:${T_PASS}" \
      --data "status=${ENC_STATUS}" \
      "http://twitter.com/statuses/update.json"

DATA=`grep 'created_at' $OUT`
if [ "X$DATA" != "X" ]; then
    echo "Status Updated: ${STATUS}"
    RES=0
else
    echo "Error updating status."
    RES=1
fi
echo ""

rm -f $OUT

exit $RES

Para ejecutar el script (en mi caso lo guarde como “twitter”), se puede proceder de las siguente forma:

sondrove@unixbox:$ twitter Esta es una prueba del script de Twitter para Bash

O en caso de tener algún símbolo especial, usar la siguiente variante:

sondrove@unixbox:$ twitter "Esta es una prueba de ampersand (&) y asteriscos ***"

O simplemente…

sondrove@unixbox:$ twitter

Links relacionados:

Leave a Reply