diff --git a/resspublica/federalInitiativesFeeds.py b/resspublica/federalInitiativesFeeds.py index 42d1f39..638e919 100644 --- a/resspublica/federalInitiativesFeeds.py +++ b/resspublica/federalInitiativesFeeds.py @@ -38,7 +38,8 @@ def generateFederalFeed(CACHE): FEDERAL_DB_PATH = CACHE / "federalInitiatives.json" db = TinyDB(FEDERAL_DB_PATH) q = Query() - + + lastUpdateTime = "0000-00-00" for entry in data: logger.debug(f"Popular initiative {getValue(entry, "title_fr")}") item = { @@ -177,6 +178,7 @@ def generateFederalFeed(CACHE): # Constitutional change item["text"] += getValue(entry, "text_" + lang) + lastUpdateTime = max(lastUpdateTime, item["date"].isoformat()) feeds[lang].append(copy.deepcopy(item)) logging.info("Parsed query. Generating feeds...") @@ -186,6 +188,7 @@ def generateFederalFeed(CACHE): "initiativesPopulairesFederales", "fr", ["rss", "atom"], + lastUpdateTime, feeds["fr"] ) @@ -195,6 +198,7 @@ def generateFederalFeed(CACHE): "eidgenossischVolksinitiativen", "de", ["rss", "atom"], + lastUpdateTime, feeds["de"] ) @@ -204,5 +208,6 @@ def generateFederalFeed(CACHE): "iniziativePopolariFederali", "it", ["rss", "atom"], + lastUpdateTime, feeds["it"] ) diff --git a/resspublica/utils.py b/resspublica/utils.py index 605d5b3..3ce42f6 100644 --- a/resspublica/utils.py +++ b/resspublica/utils.py @@ -6,9 +6,8 @@ from zoneinfo import ZoneInfo import logging logger = logging.getLogger("resspublica") -def generateFeed(title, description, fileName, language, standards, entries): +def generateFeed(title, description, fileName, language, standards, lastUpdateTime, entries): logger.info(f"Generating feed {title}") - time = datetime.now(ZoneInfo("Europe/Zurich")) fg = FeedGenerator() fg.title(title) # We need to set a different link between atom and rss. As rss links are easier with feedgen we set fg.link for atom and fg.__rss_link for rss @@ -18,7 +17,9 @@ def generateFeed(title, description, fileName, language, standards, entries): fg.id("https://raw.githubusercontent.com/tomasriveral/ReSSPublica/refs/heads/main/feed/atom/" + language + "/" + fileName) fg.description(description) fg.language(language) - fg.updated(time) + if not isinstance(lastUpdateTime, datetime): + lastUpdateTime = datetime.fromisoformat(lastUpdateTime).replace(tzinfo=ZoneInfo("Europe/Zurich")) + fg.updated(lastUpdateTime) fg.author({'name': 'ReSSPublica'}) fg.docs("https://github.com/tomasriveral/ReSSPublica")