Mi primer «pet project», subtiREST

Hubo un tiempo en el que tenía ganas de aprender PHP para poder hacer cosas web guay. Empecé con un libro y lo dejé. Hubo un tiempo en el que tenía ganas de aprender MySQL para poder hacer cosas en general guays. Empecé con un libro y lo dejé. Hubo un tiempo en el que tenía ganas de profundizar un poco más en otros lenguajes de programación como Python. ¿Adivináis lo que pasó? Bueno, en ese caso no cogí un libro, me apunté a un curso online. En cualquier caso, sí, lo dejé.

A pet project is a project, activity or goal pursued as a personal favorite, rather than because it is generally accepted as necessary or important.

El aprendizaje guiado sin goal está claro que no me motiva, así que hace unas semanas me dije, que le den. Pensé un proyecto pequeño que tocase varias cosas con las que tenía ganas de jugar y me puse a la tarea.

Hoy os presento subtiREST. No es perfecto, el código puede no ser bonito, pero lo que está programado funciona. Y funciona bastante decentemente. Y al estar diseñado en componentes (tres, para ser exactos), estos pueden distribuirse en varias máquinas, lo que lo hace todavía más chulo. ¿Pero qué es subtiREST? Es un wrapper RESTful de subtitulos.es, para poder obtener cierta información acerca de las series mediante sus subtítulos alojados en la mentada web. Toda esta información es obtenida mediante web scrap, así que si cambiase la estructura HTML de subtitulos.es, el proyecto quedaría roto en su base. Pero bueno.

He usado:

  • MongoDB para el almacenamiento, con dos colecciones. Una para información general de las series, y otra para guardar nombres ya consultados de capítulos.
  • Python en la parte del Web scrap. Un scraper para el índice de series, y otro para el de los títulos, corriendo como servidor RPC.
  • ZeroRPC para la parte de los procedimientos remotos, conectando con él Python y Node.js.
  • Node.js para el lado del servidor, con Mongoose para conectar con MongoDB y express para los routes.

subtiREST está registrado bajo Apache 2.0, así que sois libres de jugar con ello tanto como queráis. En el repositorio de Github encontraréis toda la información necesaria.

Deja un comentario