diff options
Diffstat (limited to 'build-feed.py')
| -rwxr-xr-x | build-feed.py | 54 |
1 files changed, 54 insertions, 0 deletions
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()) |
