From 39b7524f312ee36a4cd741b27bc10d14caae8d8e Mon Sep 17 00:00:00 2001 From: sylvain Date: Sun, 8 Mar 2026 15:35:10 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20TODO.md=20:=20roadmap=20automatisation?= =?UTF-8?q?=20email=20=E2=86=92=20ICS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TODO.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 TODO.md diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..a5e9832 --- /dev/null +++ b/TODO.md @@ -0,0 +1,33 @@ +# Todo list — Automatisation email → ICS + +Objectif final : réception d'un mail avec PDF en pièce jointe → conversion automatique en ICS. + +--- + +## 1. Réception des mails +- [ ] Choisir le mode de réception : **IMAP polling** (simple, pas de serveur mail requis) ou **webhook entrant** (Postfix/Haraka/etc.) +- [ ] Configurer une adresse dédiée (ex: `planning@piaf.im`) +- [ ] Ajouter les credentials IMAP dans `config.json` +- [ ] Implémenter un watcher IMAP : connexion, détection nouveaux mails, extraction des pièces jointes PDF + +## 2. Pipeline automatique +- [ ] Filtrer les mails entrants (expéditeur autorisé, pièce jointe `.pdf`) +- [ ] Déclencher `process_pdfs()` sur les PDFs reçus (réutiliser le code existant) +- [ ] Stocker le job dans l'historique comme un job normal (webapp) + +## 3. Diffusion du résultat +- [ ] Définir la destination : répertoire local, CalDAV (Nextcloud), ou réponse mail avec les `.ics` en pièce jointe +- [ ] Implémenter la diffusion choisie + +## 4. Intégration webapp +- [ ] Ajouter un endpoint `/api/mail/check` pour déclencher manuellement une vérification +- [ ] Afficher dans l'interface les jobs déclenchés par mail (badge ou indicateur) +- [ ] Section config dans `config.json` pour activer/désactiver l'auto-mail + +## 5. Planification +- [ ] Ajouter un scheduler dans FastAPI (APScheduler ou tâche asyncio) pour le polling IMAP périodique +- [ ] Configurer l'intervalle dans `config.json` + +--- + +**Ordre recommandé** : 1 → 2 → 5 → 3 → 4