mirror of
https://github.com/tomasriveral/ReSSPublica.git
synced 2026-08-12 10:40:45 +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 feedgen.feed import FeedGenerator
|
||||||
from importlib.resources import files
|
from importlib.resources import files
|
||||||
|
|
||||||
|
def getValue(row, key):
|
||||||
|
return row.get(key, {}).get("value") or None
|
||||||
|
|
||||||
def generateFederalFeed():
|
def generateFederalFeed():
|
||||||
sparql = SPARQLWrapper("https://cached.lindas.admin.ch/query")
|
sparql = SPARQLWrapper("https://cached.lindas.admin.ch/query")
|
||||||
query = files("resspublica.queries").joinpath("federalPopularInitiatives.sparql").read_text()
|
query = files("resspublica.queries").joinpath("federalPopularInitiatives.sparql").read_text()
|
||||||
@@ -9,7 +12,26 @@ def generateFederalFeed():
|
|||||||
sparql.setReturnFormat(JSON)
|
sparql.setReturnFormat(JSON)
|
||||||
|
|
||||||
results = sparql.query().convert()
|
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():
|
def main():
|
||||||
generateFederalFeed()
|
generateFederalFeed()
|
||||||
|
|||||||
Reference in New Issue
Block a user