El tren Sarmiento en PublicTransport de KDE

Hace unas semanas se habilitó una app para saber los horarios de los trenes del tren Sarmiento del area metropolitana de Buenos Aires. A partir de ahí, se me ocurrió la posibilidad de agregar un service provider al plasmoid publictransport.

Desgraciadamente, los datos no están expuestos a través de una API, sino que utiliza AJAX, en conjunto con una key de sesión y una cookie. Un desarrollador amigo, Sebastián Alvarez, se puso manos a la obra y a través de ingenieria reversa logró obtener los datos usando Javascript. Después, junto con Niv Sardi montaron un pequeño servidor web que expone los datos con JSON.

Ya con esto, me puse manos a la obra y logré armar un script de javascript que carga estos datos en el plasmoid. La ayuda del desarrollador de PublicTransport fue esencial para poder hacer debug del script en algunos puntos.

Finalmente, pude visualizar los horarios del tren en el plasmoid.

sarmiento1Todavía tiene algunos problemas, y los datos los obtengo a través del servidor de Niv. Si esto se hace masivo, debería estar en un servidor definitivo. También debo encontrar una forma para limpiar los resultados, porque un update de los horarios termina duplicando los datos. También faltaría información de la geolocalización de las estaciones.

Igualmente, para ser el trabajo de algunas horas en la semana, no está mal.

El código inicial del service provider está disponible aquí. Se trata de un borrador y probablemente cambie mucho.

 

About asoliverez

Free Software developer, KDE e.V. member, political activist at SoftwareLibreConCFK, Zen Buddhist, son of a retired physicist and politician ,and a Literature professor; husband of a beautiful QA consultant, and father of the cutest daughter