summaryrefslogtreecommitdiff
path: root/build-feed.py
diff options
context:
space:
mode:
authorKévin Le Gouguec <kevin.legouguec@gmail.com>2022-02-21 15:44:44 +0100
committerKévin Le Gouguec <kevin.legouguec@gmail.com>2022-02-21 15:44:44 +0100
commit8ea5a391e289c4e35995b00b9ef5ec91a26cb5d7 (patch)
tree70f16283c61e68aff318f6d71167e3fe50a0ba57 /build-feed.py
parent6d9636d35c5d0d244208165010bb70635c98ab2c (diff)
downloadquatuorbellefeuille.com-8ea5a391e289c4e35995b00b9ef5ec91a26cb5d7.tar.xz
[wip] Reorganize RSS builder code
Diffstat (limited to 'build-feed.py')
-rwxr-xr-xbuild-feed.py50
1 files changed, 29 insertions, 21 deletions
diff --git a/build-feed.py b/build-feed.py
index 5b14326..7295563 100755
--- a/build-feed.py
+++ b/build-feed.py
@@ -1,11 +1,10 @@
#!/usr/bin/env python3
+from sys import argv
from urllib.parse import urljoin
from xml.etree.ElementTree import Element, SubElement, indent, tostring
-
-DOMAIN = 'quatuorbellefeuille.com'
-LANG = 'fr'
+from helpers import guess_language
LOCALIZED_TEXT = {
@@ -21,9 +20,6 @@ LOCALIZED_TEXT = {
},
}
-URL = f'https://{DOMAIN}'
-INDEX_URL = urljoin(URL, LOCALIZED_TEXT[LANG]['indexpath'])
-
def text_element(tag, text, /, **kwargs):
elt = Element(tag, **kwargs)
@@ -31,24 +27,36 @@ def text_element(tag, text, /, **kwargs):
return elt
-rss = Element('rss', version='2.0')
+def main(concerts_src, feed_dst, domain):
+ lang = guess_language(concerts_src)
+ text = LOCALIZED_TEXT[lang]
+
+ url = f'https://{domain}'
+ index_url = urljoin(url, text['indexpath'])
+
+ rss = Element('rss', version='2.0')
+
+ channel = SubElement(rss, 'channel')
+
+ channel.extend((
+ text_element('title', text['title']),
+ text_element('link', index_url),
+ text_element('description', text['description']),
+ ))
-channel = SubElement(rss, 'channel')
+ image = SubElement(channel, 'image')
+ image.extend((
+ text_element('url', urljoin(url, 'images/logo.svg')),
+ text_element('link', urljoin(index_url, 'concerts.html')),
+ ))
-channel.extend((
- text_element('title', LOCALIZED_TEXT[LANG]['title']),
- text_element('link', INDEX_URL),
- text_element('description', LOCALIZED_TEXT[LANG]['description']),
-))
+ channel.append(text_element('language', lang))
-image = SubElement(channel, 'image')
-image.extend((
- text_element('url', urljoin(URL, 'images/logo.svg')),
- text_element('link', urljoin(INDEX_URL, 'concerts.html')),
-))
+ indent(rss)
-channel.append(text_element('language', LANG))
+ with open(feed_dst, 'wb') as feed:
+ feed.write(tostring(rss, encoding='utf-8', xml_declaration=True))
-indent(rss)
-print(tostring(rss, encoding='utf-8', xml_declaration=True).decode())
+if __name__ == '__main__':
+ main(argv[1], argv[2], argv[3])