Commit Graph

28 Commits

Author SHA1 Message Date
ext.jeremy.guillot@maxicoffee.domains
41ca08f20e feat: notification system via Mercure for scraping events
- NotificationInterface: add sendInfo() and sendWarning() levels
- SymfonyNotification: implement new levels (publishes to 'notifications' topic)
- ChapterScrapingStarted: carry mangaTitle + chapterNumber, now dispatched
- ScrapeChapterHandler: dispatch ChapterScrapingStarted before scraping loop
- ScrapingEventSubscriber: wire NotificationInterface for started/scraped/failed events
- useMercureNotifications: new global Vue composable subscribing to 'notifications' topic
- App.vue: mount useMercureNotifications() at app root
- SendTestNotificationCommand: `app:notify:test --type --message` for dev/prod testing

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-12 00:57:21 +01:00
ext.jeremy.guillot@maxicoffee.domains
c311cfe80c refactor(scraping): DDD refactoring — stockage images individuelles
Le domaine Scraping ne génère plus d'archives CBZ ni ne modifie les
entités du domaine Manga directement. Il scrape, stocke les images
individuellement, et émet un événement partagé.

- Suppression : CbzGeneratorInterface, CbzGenerator, CbzGenerationRequest,
  CbzPath, CbzGenerationException
- Suppression : save() de ChapterRepositoryInterface (Scraping)
- Suppression : cbzPath du modèle Chapter (Scraping)
- Ajout : ImageStorageInterface + LocalImageStorage
  (stockage dans {MANGA_DATA_PATH}/pages/{chapterId}/)
- ScrapeChapterHandler utilise ImageStorage au lieu du générateur CBZ

- ChapterScraped déplacé dans Domain/Shared/Domain/Event/
  avec jobId, chapterId, pagesDirectory, pageCount
- Routing Messenger ajouté

- Ajout : ChapterScrapedEventListener + ChapterScrapedMessageHandler
  pour mettre à jour Chapter.pagesDirectory via le Repository Manga

- LegacyChapterRepository en dual-mode :
  pagesDirectory en priorité, fallback cbzPath (backward compat)
- Requêtes prev/next : filtrent pagesDirectory IS NOT NULL OR cbzPath IS NOT NULL
- ChapterContext expose pagesDirectory

- phparkitect.php : App\Domain\Shared\Domain\Event autorisé dans
  les couches Application (correction violations pré-existantes
  ChapterImported/VolumeImported + nouvelle ChapterScraped)

- 218/218 tests passent (+3 nouveaux)
- InMemoryImageStorage créé pour les tests unitaires

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-09 20:52:16 +01:00
ext.jeremy.guillot@maxicoffee.domains
7506a7a3c1 style: apply php-cs-fixer formatting (PSR-12)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-09 20:46:59 +01:00
ext.jeremy.guillot@maxicoffee.domains
3170a7c60e feat: analyse import + all tests fixed 2025-10-15 16:14:15 +02:00
ext.jeremy.guillot@maxicoffee.domains
f09f744a9b feat: ajout de la fonctionnalité de suppression de mangas, incluant une modale de confirmation pour l'utilisateur, la gestion des erreurs et l'intégration avec l'API pour supprimer les mangas et leurs chapitres associés. Mise à jour des composants Vue et ajout de tests pour valider cette nouvelle fonctionnalité. 2025-07-23 16:42:54 +02:00
ext.jeremy.guillot@maxicoffee.domains
be283833e9 feat: amélioration du service de téléchargement d'images, ajout de la gestion des types de contenu, création de fichiers temporaires pour le traitement des images, et détection des formats d'image. La sauvegarde des images est maintenant garantie avec l'extension JPG. Gestion des erreurs améliorée lors de la création et de la sauvegarde des ressources d'image. 2025-07-23 15:11:52 +02:00
ext.jeremy.guillot@maxicoffee.domains
00d63dffeb feat: ajout de la fonctionnalité de monitoring des mangas, incluant l'activation et la désactivation du suivi, la synchronisation des chapitres, et la mise à jour de l'API pour gérer ces nouvelles actions. Création de nouveaux composants Vue pour le rafraîchissement des chapitres et l'affichage des notifications. Intégration de tests unitaires pour valider le bon fonctionnement de ces fonctionnalités. 2025-07-22 15:57:25 +02:00
ext.jeremy.guillot@maxicoffee.domains
b456f9304d feat: ajout d'une nouvelle infrastructure de scraping avec des scrapers pour HTML, HTML avancé et JavaScript, ainsi qu'une factory pour gérer leur création et leur sélection. Mise à jour des gestionnaires de commandes pour intégrer cette nouvelle architecture et améliorer la gestion des erreurs lors du scraping des chapitres. 2025-07-08 15:30:22 +02:00
ext.jeremy.guillot@maxicoffee.domains
cbb62989d4 feat: ajout de la fonctionnalité de test de configuration de scraper, incluant la mise à jour de l'API pour tester les configurations en temps réel, la gestion des erreurs détaillées et l'intégration des tests unitaires pour valider le bon fonctionnement de cette nouvelle fonctionnalité. 2025-07-06 17:01:04 +02:00
ext.jeremy.guillot@maxicoffee.domains
a6ca8a2c9a feat: ajout de la gestion des slugs alternatifs pour le scraping des chapitres, mise à jour du service de scraping pour essayer plusieurs slugs, et amélioration de la configuration des services pour le dépôt de chapitres et le service de fichiers. 2025-07-03 18:41:13 +02:00
ext.jeremy.guillot@maxicoffee.domains
7fe4ac0d3b refactor: remplacement du gestionnaire de commandes SymfonySetMangaPreferredSourcesHandler par SetMangaPreferredSourcesHandler pour simplifier le traitement des sources préférées des mangas 2025-06-29 16:19:54 +02:00
ext.jeremy.guillot@maxicoffee.domains
4dc6e5cfab fix: preferred chapter fix 2025-06-26 14:51:00 +02:00
ext.jeremy.guillot@maxicoffee.domains
75f8e1686c feat: ajout de la gestion des sources préférées pour les mangas, incluant la récupération et la configuration des sources via l'API, ainsi que l'intégration d'une modale pour l'interface utilisateur. 2025-06-20 15:33:54 +02:00
ext.jeremy.guillot@maxicoffee.domains
c0bd9c69b1 feat: mise à jour de la gestion des chapitres en remplaçant les types d'identifiants par des flottants pour une meilleure cohérence, ajout de la documentation pour les méthodes de recherche de chapitres, et amélioration de la gestion des exceptions lors de la récupération des chapitres. 2025-04-05 11:43:40 +02:00
ext.jeremy.guillot@maxicoffee.domains
5928cfd5f0 feat: ajout de la gestion des chapitres dans le store Manga avec des actions pour charger et mettre à jour la disponibilité des chapitres, intégration d'un écouteur Mercure pour les mises à jour en temps réel, et amélioration des composants d'interface utilisateur pour gérer les états de chargement et d'erreur. 2025-04-04 16:06:32 +02:00
ext.jeremy.guillot@maxicoffee.domains
c9f1771522 feat: refactorisation de la gestion du scraping des chapitres en remplaçant les identifiants de manga et de chapitre par un identifiant de chapitre unique, amélioration de la récupération des sources préférées et ajout de la gestion des erreurs pour les échecs de scraping. 2025-04-03 16:34:30 +02:00
ext.jeremy.guillot@maxicoffee.domains
d7ccc1e603 feat: ajout de la gestion des jobs avec création, récupération et filtrage via l'API, incluant des entités et des mappers pour les échecs et les jobs 2025-03-29 15:15:14 +01:00
ext.jeremy.guillot@maxicoffee.domains
d7088b14c2 feat: refonte du gestionnaire de chapitres pour intégrer la génération de fichiers CBZ, le téléchargement d'images en lot et la gestion des requêtes de scraping, avec mise à jour des interfaces et des modèles associés 2025-03-28 20:42:21 +01:00
ext.jeremy.guillot@maxicoffee.domains
55945adc53 feat: Reader beginning 2025-02-16 16:15:42 +01:00
ext.jeremy.guillot@maxicoffee.domains
e90c0a140e feat: Rangement des endpoints dans la doc Api Platform 2025-02-12 17:18:16 +01:00
ext.jeremy.guillot@maxicoffee.domains
879b8fa2dc feat: endpoint FetchMangaChapters et tests 2025-02-11 18:00:49 +01:00
ext.jeremy.guillot@maxicoffee.domains
073439163b feat: finalizing Scraping endpoint 2025-02-10 17:28:49 +01:00
ext.jeremy.guillot@maxicoffee.domains
0374ab0e46 feat: scraping endpoints, job persistence, firsts unit tests, legacy entities usage 2025-02-07 11:56:51 +01:00
ext.jeremy.guillot@maxicoffee.domains
c55cd62ec7 fix: phpcs-fixer 2025-02-05 21:32:04 +01:00
ext.jeremy.guillot@maxicoffee.domains
6bc3696190 feat: firsts endpoints and firsts tests 2025-02-05 16:54:13 +01:00
ext.jeremy.guillot@maxicoffee.domains
89570ad951 feat: firsts unit tests for ScrapeChapterHandler.php 2025-02-03 10:38:53 +01:00
ext.jeremy.guillot@maxicoffee.domains
0a8e6786a8 feat: suite du passage en DDD de Scraping 2025-02-01 15:28:58 +01:00
ext.jeremy.guillot@maxicoffee.domains
0c8ca6cca9 feat: debut rerefonte DDD CQRS 2025-02-01 15:28:58 +01:00