<body>

Sitios web relacionados: PingBlog | Fotos

sábado, febrero 18, 2006

Echando código: Trabajando en PingBlog (II)


Después de pasar casí una semana sin poder tocar el proyecto (PingBlog), hoy al fin terminé el código para poder hacer pings a Bitacoras.net; Es bastante generico, así que si necesito hacer otros "Pingers" no me debería costar tanto (hubo varias ideas de como hacerlo, pero no quize "Over Engineer" el código, sino más bien sacarlo rápido para dedicarme ahora a las cosas nuevas que quiero aprender).

Siempre hay que hacer comprimisos entre sacar el código rápido y hacerlo lo más elegantemente posible :)

La forma en como me decidí a resolver el problema fué así:
  • Enviar parametros con el método POST a el sitio web. Como quiero flexibilidad en el futuro, me decidí a utilizar Apache HttpClient. los ejemplos son brutales. Más ejemplos aquí.
  • Luego viene buscar en la respuesta (sepultada bajo HTML que cambia de blog en Blog). Para eso utilizo a Jtidy el cual me devuelve un arbol DOM el cual puedo recorrer a mi antojo. Más ejemplos aquí.
Ya antes le habia hecho pings a bitacoras.net usando HTTP POST. Así que esta vez integré el código y con un poco de Junit todo quedó listo:
[josevnz@localhost pingblog]$ ant -Dtestcase=com.blogspot.elangelnegro.blog.pingblog.pinger.TestHttpPingers test
Buildfile: build.xml

init:

build:
[javac] Compiling 1 source file to /home/josevnz/sf/pingblog/build
[copy] Copying 2 files to /home/josevnz/sf/pingblog/build

jar:
[copy] Copying 8 files to /home/josevnz/sf/pingblog/build
[unjar] Expanding: /home/josevnz/sf/pingblog/lib/xmlrpc-1.2-b1.jar into /home/josevnz/sf/pingblog/build
[unjar] Expanding: /home/josevnz/sf/pingblog/lib/commons-codec-1.3.jar into /home/josevnz/sf/pingblog/build
[unjar] Expanding: /home/josevnz/sf/pingblog/lib/commons-httpclient-3.0.jar into /home/josevnz/sf/pingblog/build
[unjar] Expanding: /home/josevnz/sf/pingblog/lib/Tidy.jar into /home/josevnz/sf/pingblog/build
[unjar] Expanding: /home/josevnz/sf/pingblog/lib/commons-httpclient-3.0.jar into /home/josevnz/sf/pingblog/build
[unjar] Expanding: /home/josevnz/sf/pingblog/lib/commons-logging.jar into /home/josevnz/sf/pingblog/build
[jar] Building jar: /home/josevnz/sf/pingblog/dist/PingBlog.jar

test:
[echo] Running unit tests
[junit] Running com.blogspot.elangelnegro.blog.pingblog.pinger.TestHttpPingers
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 1.022 sec
[junitreport] Transform time: 1970ms

BUILD SUCCESSFUL
Total time: 11 seconds
El siguiente asunto por resolver es el del archivo de configuración y la interfaz gráfica. por ahora sólo tengo un hola mundo para la parte gráfica:

PingBlogIntroCaptura de Pantalla de PingBlog. Un poco inútil por los momentos.


Buscar en Technorati: