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()