Merge pull request 'fix(blog) : acquitter les GUID après livraison XMPP' (#39) from fix/issue-12-blog-delivery into main

This commit was merged in pull request #39.
This commit is contained in:
2026-09-12 23:54:12 +02:00
6 changed files with 182 additions and 11 deletions
+17
View File
@@ -19,6 +19,7 @@ import logging
from collections.abc import Iterable
from pathlib import Path
from pronote_sync.sources.blog.result import BlogRSSFetchResult
from pronote_sync.utils.redaction import redact_exception, redact_secrets
logger = logging.getLogger(__name__)
@@ -156,6 +157,22 @@ class BlogRSSState:
self._known_guids.update(new_guids)
self._save()
def acknowledge(self, result: BlogRSSFetchResult) -> None:
"""Acquitte une récupération RSS après sa livraison confirmée.
Les GUID et les en-têtes de cache sont enregistrés ensemble afin qu'un
article dont la livraison a échoué reste récupérable à l'exécution
suivante. Une réponse ``304 Not Modified`` n'a rien à acquitter.
:param result: Résultat RSS livré avec succès.
"""
if result.not_modified:
return
self._known_guids.update(article.id for article in result.articles)
self._etag = result.etag
self._last_modified = result.last_modified
self._save()
def get_cache_headers(self) -> tuple[str | None, str | None]:
"""Renvoie les en-têtes de cache HTTP mémorisés.