mirror of
https://github.com/tomasriveral/ReSSPublica.git
synced 2026-08-11 18:28:38 +02:00
feeds: separate per language
This commit is contained in:
+23
-1
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user