quatuorbellefeuille.com

Content, build scripts and admin scripts for the Bellefeuille Quartet website.
git clone https://git.kevinlegouguec.net/quatuorbellefeuille.com
Log | Files | Refs

commit 836aaf1fdfa5a60d261ed6e06e880d08b1b68bd0
parent 28ef8c28422882150bef4874b3030321aff8add0
Author: Kévin Le Gouguec <kevin.legouguec@gmail.com>
Date:   Mon, 21 Feb 2022 19:11:20 +0100

[wip] Make list of concert items in RSS feed (cont'd)

Diffstat:
Mbuild-feed.py | 26+++++++++++++++++---------
1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/build-feed.py b/build-feed.py @@ -36,18 +36,25 @@ def text_element(tag, text, /, **kwargs): return elt -def generate_concerts(concerts_src, lang): +def generate_concert(concert, concerts_url, lang): formatters = LOCALIZED_FORMATS[lang] - for c in read_concerts(concerts_src): - item = Element('item') + item = Element('item') + + with tmplocale(lang): + title = formatters['title'](concert) + item.append(text_element('title', title)) + + anchor = f'concert-{concert.time.strftime("%F")}' + item.append(text_element('link', f'{concerts_url}#{anchor}')) - with tmplocale(lang): - title = formatters['title'](c) + return item - item.append(text_element('title', title)) - yield item +def generate_concerts(concerts_src, concerts_url, lang): + + for c in read_concerts(concerts_src): + yield generate_concert(c, concerts_url, lang) def main(concerts_src, feed_dst, domain): @@ -56,6 +63,7 @@ def main(concerts_src, feed_dst, domain): url = f'https://{domain}' index_url = urljoin(url, text['indexpath']) + concerts_url = urljoin(index_url, 'concerts.html') rss = Element('rss', version='2.0') @@ -70,12 +78,12 @@ def main(concerts_src, feed_dst, domain): image = SubElement(channel, 'image') image.extend(( text_element('url', urljoin(url, 'images/logo.svg')), - text_element('link', urljoin(index_url, 'concerts.html')), + text_element('link', concerts_url), )) channel.append(text_element('language', lang)) - items = generate_concerts(concerts_src, lang) + items = generate_concerts(concerts_src, concerts_url, lang) channel.extend(tuple(items)) indent(rss)