À propos du projet
ticktick-py-v2 est un wrapper Python autour du point de terminaison non officiel `api/v2` de TickTick, qui est l’interface interne utilisée par l’application web et les clients de bureau. L’auteur le présente comme une alternative à l’API OAuth officielle de TickTick, qui couvre les tâches et les projets mais rend les habitudes en lecture seule et ne dispose d’aucun point de terminaison pour la concentration/pomodoro.
Ce que la bibliothèque expose, selon le README :
- Tâches et projets : lecture des tâches actives et des listes de projets, création de tâches, achèvement de tâches, et enrichissement des objets tâche avec des propriétés de projet telles que les noms de projet.
- Habitudes : lecture des enregistrements de vérification (par ex. après une date donnée) et envoi d’enregistrements de vérification, ce qui, selon le README, permet de reconstituer l’historique des habitudes à partir d’une autre source de données.
- Concentration/Pomodoro : lecture des sessions de concentration sur une période de décalage d’un jour, vérification de l’état d’exécution d’une session, et ajout d’enregistrements de concentration pour des sessions historiques (horodatages de début/fin).
- Événements de calendrier : récupération de tous les événements.
Notes de conception du README :
- L’API est exposée sous forme de fonctions simples plutôt que de classes de client d’état ; chaque appel accepte un argument `headers` optionnel, de sorte que les en-têtes d’authentification peuvent être récupérés une fois via `get_authenticated_ticktick_headers()` et réutilisés, ou récupérés à nouveau à chaque appel (rapide une fois que la connexion est mise en cache sur le disque).
- L’authentification utilise la session de connexion normale (cookies), pas OAuth. Les informations d’identification peuvent être fournies via les variables d’environnement `TICKTICK_EMAIL` et `TICKTICK_PASSWORD`, avec une session Selenium sans tête gérant la connexion et la mise en cache des cookies ; alternativement, les cookies peuvent être exportés manuellement dans un fichier `.ticktick-cookies.json`.
- Les valeurs de retour sont des instances `BaseModel` de pydantic, convertibles avec `.model_dump()` ou `.model_dump(by_alias=True)` pour les noms de champs en camelCase natifs de TickTick.
L’installation se fait via `pip install ticktick-py-v2` ; les tests sont exécutés avec pytest sur le répertoire `tests/` inclus. Le dépôt est organisé en `cookies_login.py`, `events.py`, `focus.py`, `habits.py`, `tasks.py`, plus les internes `utils/` et `web/`.
Le README est explicite sur le principal compromis : il s’agit d’une API non officielle, conçue par rétro-ingénierie, qui s’authentifie via la session de connexion d’un utilisateur et peut se briser si TickTick modifie ses points de terminaison internes. La section de contribution invite à signaler des problèmes et à envoyer des pull requests pour les points de terminaison non couverts, tels que les cas limites de tâches récurrentes, les sous-tâches et les rappels, et demande des détails sur les échecs de requête/réponse lorsque les points de terminaison changent. Licencié sous Apache 2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.