Another Twitter command-line client

No sé hasta cuando me va a durar, pero por ahora sigo usando Twitter. El tema o la excusa para escribir este script, es que es un embole tener un browser corriendo solo para ver los updates. Y aprovechando que la API esta por todos lados y no es nada complicado hacerse un cliente en cualquier lenguaje. En este caso lo hice con PHP, si si ya sé que podría haber usado hasta bash y tidy para esto. Pero esto fue lo más rápido que encontré para hacerlo, solo necesitaba PHP para parsear JSON y un poco de PEAR. Twitter también soporta XML, RSS y ATOM.

<?php
include ("HTTP/Request.php");

$user = "pabluk"; $pass = "pass";

$timeline = new HTTP_Request("http://twitter.com/statuses/friends_timeline/" . $user . ".json"); $timeline->setBasicAuth($user, $pass); $timeline->sendRequest();

$updates = array_reverse(json_decode($timeline->getResponseBody(), TRUE));

foreach ($updates as $update) { if ($update['user']['screen_name'] == $user) { echo "\033[32m" . $update['user']['screen_name'] . ":\33[37m " . $update['text'] . "\n"; } else { echo "\033[33m" . $update['user']['screen_name'] . ":\33[37m " . $update['text'] . "\n"; } }

?>

Bastante sencillo, muestra el username en color y uso array_reverse() para ordenar los updates en la terminal, así aparecen los más recientes al final. Lo ejecuto con
pabluk@amidala:~$ php twitter-status.php
Para tenerlo cada tanto actualizado se puede correr con
pabluk@amidala:~$ while : ; do clear ; php twitter-status.php ; sleep 120 ; done
Y por supuesto que también se pueden enviar updates, usando curl

!/bin/bash

curl -u "pabluk:pass" -d status="$@" \ "http://twitter.com/statuses/update.json" &> /dev/null

y haciendo
pabluk@amidala:~$ twitter-update.sh "fin del post..."