Écriture d'une nouvelle fonctionnalité : s'abonner aux notification de pages modifiées dans un livre.
Plan d'action — Digest de suivi de livres BookStack
Contexte
Remplacer le hack notify-tagged-page-updates (notification par rôle, immédiate) par un système de suivi individuel par utilisateur avec digest périodique.
Ce qu'on sait déjà
- ❌ Pas d'événement
CRON/DAILYdansThemeEvents.php→ le déclencheur du digest sera un cron sur l'hôte (msi-01) - ✅ Le stockage sera un fichier JSON externe monté en volume, jamais touché par les mises à jour de l'image
- ✅ L'abonnement se fait via un tag
follow:nicolas,marinoposé manuellement sur le livre — choix individuel, pas de groupe
Pas totalement d'accord avec le cron externe : cela fragilise le système. au moins une cron intégré au conteneur serait plus sécurisé. mais utiliser la fonction schedule de laravel serait le plus robuste.
Les 3 chantiers
Chantier 1 — Le fichier JSON
- Définir son emplacement dans le volume (
/srv/bookstack/bookstack_data/hack-digest.json) - Définir sa structure définitive
- Le créer vide au départ
Chantier 2 — Réécriture du functions.php
- Écouter
PAGE_UPDATE→ lire le tagfollow:sur le livre → accumuler dans le JSON - Remplacer toute la logique d'envoi immédiat par l'accumulation
Chantier 3 — Le digest
- Écrire le script d'envoi (commande artisan custom ou script PHP standalone)
- Formater l'email récapitulatif (liste des pages modifiées par livre)
- Brancher le cron sur l'hôte à l'heure souhaitée
Questions à trancher en début de prochaine session
- Fréquence du digest — quotidien à heure fixe ? Paramétrable par utilisateur ?
- Emplacement du JSON — à confirmer selon la structure de tes volumes
- Format de l'email — simple liste texte ou HTML avec liens cliquables ?
Bonne soirée ! 🚀
No comments to display
No comments to display