BookinglyTech News
Software

Creé un script de 300 líneas para sustituir una app de Pomodoro de pago

El programa guarda sesiones en un CSV y soporta calendario persa y gregoriano, eliminando la necesidad de pagar por historial prolongado.

1 min de lecturaDev.to3 vistas

La mayoría de las aplicaciones de Pomodoro bloquean el historial tras una cuota. Marinara y Focus To‑Do, por ejemplo, solo guardan un mes de datos en la versión gratuita. El autor necesitaba analizar meses completos de tiempo registrado y, además, usar fechas del calendario persa (Jalali), algo que las herramientas existentes no soportaban.

Decidió escribir su propio script. La primera versión era una función en un cuaderno Jupyter que registraba eventos de inicio y fin en un CSV. Aunque funcionaba, ejecutar una celda cada vez que se quería registrar una tarea no era práctico para algo que se ejecutaría varias veces al día.

La segunda versión lo transformó en una interfaz de línea de comandos:

  • pomo start coding
  • pomo status
  • pomo end
  • pomo agg Cada sesión ocupa una fila en el CSV con los campos: uuid, date, weekday, task, start_hour, start_minute, end_hour, end_minute, mins. Al iniciar se añade una fila con los campos de fin vacíos; al terminar se completan los mismos. No se mantiene estado en memoria entre comandos, ya que cada invocación es un proceso nuevo; el CSV es la fuente de verdad sobre si hay alguna sesión activa.

La tercera iteración añadió un conmutador de calendario, porque la dependencia Jalali era la razón principal de la creación y al mismo tiempo la que la hacía poco utilizable para otros usuarios. Se puede cambiar con la variable de entorno POMODORO_CALENDAR=gregorian; el valor por defecto es Jalali. El modelo de datos, los comandos y la agregación permanecen idénticos independientemente del calendario activo.

El código está disponible en GitHub.