From 0645754d5742c955965d35cdbd617d550f959146 Mon Sep 17 00:00:00 2001 From: Kévin Le Gouguec Date: Mon, 21 Feb 2022 13:19:24 +0100 Subject: [wip] Generate RSS feed from concerts list --- build-feed.py | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100755 build-feed.py (limited to 'build-feed.py') diff --git a/build-feed.py b/build-feed.py new file mode 100755 index 0000000..5b14326 --- /dev/null +++ b/build-feed.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python3 + +from urllib.parse import urljoin +from xml.etree.ElementTree import Element, SubElement, indent, tostring + + +DOMAIN = 'quatuorbellefeuille.com' +LANG = 'fr' + + +LOCALIZED_TEXT = { + 'en': { + 'title': 'Bellefeuille Quartet', + 'indexpath': 'en/', + 'description': 'News from the Bellefeuille quartet', + }, + 'fr': { + 'title': 'Quatuor Bellefeuille', + 'indexpath': '/', + 'description': 'Des nouvelles du quatuor Bellefeuille', + }, +} + +URL = f'https://{DOMAIN}' +INDEX_URL = urljoin(URL, LOCALIZED_TEXT[LANG]['indexpath']) + + +def text_element(tag, text, /, **kwargs): + elt = Element(tag, **kwargs) + elt.text = text + return elt + + +rss = Element('rss', version='2.0') + +channel = SubElement(rss, 'channel') + +channel.extend(( + text_element('title', LOCALIZED_TEXT[LANG]['title']), + text_element('link', INDEX_URL), + text_element('description', LOCALIZED_TEXT[LANG]['description']), +)) + +image = SubElement(channel, 'image') +image.extend(( + text_element('url', urljoin(URL, 'images/logo.svg')), + text_element('link', urljoin(INDEX_URL, 'concerts.html')), +)) + +channel.append(text_element('language', LANG)) + +indent(rss) + +print(tostring(rss, encoding='utf-8', xml_declaration=True).decode()) -- cgit v1.2.3