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: