Sobre el proyecto
ticktick-py-v2 es un envoltorio Python alrededor del endpoint no oficial `api/v2` de TickTick, la interfaz interna utilizada por la aplicación web y los clientes de escritorio. El autor lo presenta como una alternativa a la API oficial de OAuth de TickTick, que cubre tareas y proyectos pero deja los hábitos de solo lectura y no tiene endpoints de enfoque/pomodoro.
Lo que la biblioteca expone, según el README:
- Tareas y proyectos: leer tareas activas y listas de proyectos, crear tareas, completar tareas y enriquecer objetos de tarea con propiedades de proyecto como nombres de proyecto.
- Hábitos: leer registros de verificación (p. ej., después de una marca de tiempo determinada) y publicar registros de verificación, lo que el README sugiere como una forma de rellenar el historial de hábitos desde otra fuente de datos.
- Enfoque/Pomodoro: leer sesiones de enfoque durante un desplazamiento de día, verificar si una sesión está actualmente en ejecución y agregar registros de enfoque para sesiones históricas (marcas de tiempo de inicio/fin).
- Eventos de calendario: recuperar todos los eventos.
Notas de diseño del README:
- La API se expone como funciones simples en lugar de clases de cliente con estado; cada llamada acepta un argumento opcional `headers`, por lo que los encabezados de autenticación se pueden obtener una vez a través de `get_authenticated_ticktick_headers()` y reutilizarse, o obtenerse frescos por llamada (barato una vez que el inicio de sesión está almacenado en caché en el disco).
- La autenticación utiliza la sesión de inicio de sesión normal (cookies), no OAuth. Las credenciales se pueden proporcionar a través de las variables de entorno `TICKTICK_EMAIL` y `TICKTICK_PASSWORD`, con una sesión de Selenium sin cabeza que maneja el inicio de sesión y el almacenamiento en caché de cookies; alternativamente, las cookies se pueden exportar manualmente a un archivo `.ticktick-cookies.json`.
- Los valores de retorno son instancias de `BaseModel` de pydantic, convertibles con `.model_dump()` o `.model_dump(by_alias=True)` para los nombres de campo camelCase nativos de TickTick.
La instalación se realiza mediante `pip install ticktick-py-v2`; las pruebas se ejecutan con pytest contra el directorio `tests/` incluido. El repositorio está organizado en `cookies_login.py`, `events.py`, `focus.py`, `habits.py`, `tasks.py`, además de los internos de `utils/` y `web/`.
El README es explícito sobre la principal compensación: esta es una API no oficial, de ingeniería inversa, que se autentica a través de la sesión de inicio de sesión de un usuario y puede romperse si TickTick cambia sus endpoints internos. La sección de contribución invita a problemas y solicitudes de extracción para endpoints no cubiertos, como casos extremos de tareas recurrentes, subtareas y recordatorios, y solicita detalles de solicitudes/respuestas fallidas cuando un endpoint cambia. Licenciado bajo Apache 2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.