From 5cf64d412962b1c5137da744a66ab0172709cd6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Rivera?= Date: Sun, 14 Jun 2026 12:23:28 +0200 Subject: [PATCH] feeds: separate per language --- resspublica/main.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/resspublica/main.py b/resspublica/main.py index f1908c4..8a471a0 100644 --- a/resspublica/main.py +++ b/resspublica/main.py @@ -2,6 +2,9 @@ from SPARQLWrapper import SPARQLWrapper, JSON from feedgen.feed import FeedGenerator from importlib.resources import files +def getValue(row, key): + return row.get(key, {}).get("value") or None + def generateFederalFeed(): sparql = SPARQLWrapper("https://cached.lindas.admin.ch/query") query = files("resspublica.queries").joinpath("federalPopularInitiatives.sparql").read_text() @@ -9,7 +12,26 @@ def generateFederalFeed(): sparql.setReturnFormat(JSON) results = sparql.query().convert() - print(results) + # remove some of useless json data such as "head": {"vars": [...]} + data = results["results"]["bindings"] + + feeds = { + "fr": [], + "de": [], + "it": [] + } + + for entry in data: + for lang in ["fr", "de", "it"]: + item = { + "id": getValue(entry, "id"), + "date": getValue(entry, "date"), + "title": getValue(entry, "title_" + lang), + "article": getValue(entry, "artikel_" + lang), + "text": getValue(entry, "text_" + lang) + } + feeds[lang].append(item) + print(feeds["fr"]) def main(): generateFederalFeed()