#!/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())