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 a3b76e82d935d78e41aa54c3228dbd6fb9e36fc1
parent cd1fde0ab2914ae44f1872927dbbe6fc19d63743
Author: Kévin Le Gouguec <kevin.legouguec@gmail.com>
Date:   Wed, 23 Feb 2022 20:29:50 +0100

Fix instructions HTMLization & tidy up

Thank Humanity for linters.

Diffstat:
MMakefile | 2+-
Madmin/feeds/build-feed.py | 12++++++++----
Mbuild-concerts.py | 15++++++++-------
Men/feed.xml | 42+++++++++++++++++++++++++++---------------
Mfeed.xml | 43++++++++++++++++++++++++++++---------------
Mhelpers.py | 2++
6 files changed, 74 insertions(+), 42 deletions(-)

diff --git a/Makefile b/Makefile @@ -46,7 +46,7 @@ scripts_folders = $(call dirnames,$(scripts)) all: site -feeds: $(feeds_folders) +feeds: ./admin/feeds/build-feeds.sh $(feeds_src) upload: site diff --git a/admin/feeds/build-feed.py b/admin/feeds/build-feed.py @@ -70,10 +70,12 @@ def join(sequence, joiner_factory): result.append(item) if i == len(sequence): - return result + break result.append(joiner_factory()) + return result + def cdata_concert(concert, lang): formatters = DATE_FORMATTERS[lang] @@ -89,13 +91,15 @@ def cdata_concert(concert, lang): E.p(formatters['time'](concert.time)), )) + pieces = touchup_plaintext(concert.pieces) + instructions = touchup_plaintext(concert.instructions) + blocks.extend(( E.p(*join(concert.address.splitlines(), E.br)), E.ol( - *(XML(f'<li>{touchup_plaintext(p)}</li>') - for p in concert.pieces.splitlines()) + *(XML(f'<li>{line}</li>') for line in pieces.splitlines()) ), - *(E.p(line) for line in concert.instructions.splitlines()), + *(XML(f'<p>{line}</p>') for line in instructions.splitlines()), )) # Do a silly dance to indent CDATA correctly. diff --git a/build-concerts.py b/build-concerts.py @@ -2,7 +2,6 @@ from datetime import datetime from pathlib import Path -import re from sys import argv from helpers import ( @@ -71,17 +70,19 @@ THUMBNAIL_TEMPLATE = '''\ def format_credits(illustration): - credits = illustration.source_name + attribution = illustration.source_name if illustration.source_link is not None: - credits = (f'<a href="{illustration.source_link}" target="_blank">' - f'{illustration.source_name}' - '</a>') + attribution = ( + f'<a href="{illustration.source_link}" target="_blank">' + f'{illustration.source_name}' + '</a>' + ) if illustration.license_info is not None: - credits += ' / ' + illustration.license_info.format() + attribution += ' / ' + illustration.license_info.format() - return credits + return attribution def format_thumbnail(concert, imgdir, lang): diff --git a/en/feed.xml b/en/feed.xml @@ -8,8 +8,8 @@ <url>https://quatuorbellefeuille.com/images/logo.svg</url> <link>https://quatuorbellefeuille.com/en/concerts.html</link> </image> - <lastBuildDate>23 Feb 2022 10:27 +0100</lastBuildDate> - <pubDate>23 Feb 2022 10:27 +0100</pubDate> + <lastBuildDate>23 Feb 2022 20:28 +0100</lastBuildDate> + <pubDate>23 Feb 2022 20:28 +0100</pubDate> <language>en</language> <item> <title>October 5 2019 in Le Buisson de Cadouin</title> @@ -23,7 +23,8 @@ <li>Mendelssohn quartet No. 3, Op. 44 No. 1</li> <li>Ravel string quartet</li> </ol> - <p>Information and reservation: https://arcadesinfo.com/évènement/quatuor-a-cordes-bellefeuille/</p> + <p>Information and reservation: <a href="https://arcadesinfo.com/évènement/quatuor-a-cordes-bellefeuille/" target="_blank">https://arcadesinfo.com/évènement/quatuor-a-cordes-bellefeuille/</a> + </p> ]]></description> </item> <item> @@ -38,7 +39,8 @@ <li>Chostakovitch quartet No. 11</li> <li>Ravel string quartet</li> </ol> - <p>Information and reservation: https://musiqueaucoeurdesbastides.jimdofree.com/</p> + <p>Information and reservation: <a href="https://musiqueaucoeurdesbastides.jimdofree.com/" target="_blank">https://musiqueaucoeurdesbastides.jimdofree.com/</a> + </p> ]]></description> </item> <item> @@ -53,7 +55,8 @@ <li>Beethoven quartet No. 7, Op. 59 No. 1</li> </ol> <p>Free admission without reservation, subject to the number of available places.</p> - <p>For more information, please contact quatuorbellefeuille@gmail.com</p> + <p>For more information, please contact <a href="mailto:quatuorbellefeuille@gmail.com">quatuorbellefeuille@gmail.com</a> + </p> ]]></description> </item> <item> @@ -67,7 +70,8 @@ <li>Beethoven string trio Op. 9 No. 3</li> </ol> <p>Free admission without reservation, subject to the number of available places.</p> - <p>For more information, please contact quatuorbellefeuille@gmail.com</p> + <p>For more information, please contact <a href="mailto:quatuorbellefeuille@gmail.com">quatuorbellefeuille@gmail.com</a> + </p> ]]></description> </item> <item> @@ -83,7 +87,8 @@ <li>Brahms quartet Op. 51 No. 2</li> <li>Ravel string quartet</li> </ol> - <p>Information and reservation: https://weekenddemusiqueclassique.fr</p> + <p>Information and reservation: <a href="https://weekenddemusiqueclassique.fr" target="_blank">https://weekenddemusiqueclassique.fr</a> + </p> ]]></description> <pubDate>19 Mar 2021 16:00 +0100</pubDate> </item> @@ -100,7 +105,8 @@ <li>Beethoven quartet No. 7, Op. 59 No. 1</li> </ol> <p>Free admission without reservation, subject to the number of available places.</p> - <p>For more information, please contact quatuorbellefeuille@gmail.com</p> + <p>For more information, please contact <a href="mailto:quatuorbellefeuille@gmail.com">quatuorbellefeuille@gmail.com</a> + </p> ]]></description> <pubDate>19 Mar 2021 16:00 +0100</pubDate> </item> @@ -115,7 +121,8 @@ <li>Ravel string quartet</li> </ol> <p>Free admission without reservation, subject to the number of available places.</p> - <p>For more information, please contact quatuorbellefeuille@gmail.com</p> + <p>For more information, please contact <a href="mailto:quatuorbellefeuille@gmail.com">quatuorbellefeuille@gmail.com</a> + </p> ]]></description> </item> <item> @@ -129,7 +136,8 @@ <li>Bartók quartet No. 2</li> </ol> <p>Free admission without reservation, subject to the number of available places.</p> - <p>For more information, please contact quatuorbellefeuille@gmail.com</p> + <p>For more information, please contact <a href="mailto:quatuorbellefeuille@gmail.com">quatuorbellefeuille@gmail.com</a> + </p> ]]></description> </item> <item> @@ -144,7 +152,8 @@ <li>Schubert quartettsatz</li> <li>Brahms quartet Op. 51 No. 2</li> </ol> - <p>For more information, please refer to: https://www.ledimoredelquartetto.eu/en/october-25-2021-le-grand-mello-mello-france/</p> + <p>For more information, please refer to: <a href="https://www.ledimoredelquartetto.eu/en/october-25-2021-le-grand-mello-mello-france/" target="_blank">https://www.ledimoredelquartetto.eu/en/october-25-2021-le-grand-mello-mello-france/</a> + </p> ]]></description> </item> <item> @@ -159,7 +168,8 @@ <li>Brahms quartet Op. 51 No. 2</li> <li>Ravel string quartet</li> </ol> - <p>For more information, please refer to: https://www.ledimoredelquartetto.eu/en/october-28-2021-casa-st-germain-des-pres-paris/</p> + <p>For more information, please refer to: <a href="https://www.ledimoredelquartetto.eu/en/october-28-2021-casa-st-germain-des-pres-paris/" target="_blank">https://www.ledimoredelquartetto.eu/en/october-28-2021-casa-st-germain-des-pres-paris/</a> + </p> ]]></description> </item> <item> @@ -175,7 +185,8 @@ <li>Beethoven quartet No. 7, Op. 59 No. 1</li> </ol> <p>Free admission without reservation, subject to the number of available places.</p> - <p>For more information, please contact quatuorbellefeuille@gmail.com</p> + <p>For more information, please contact <a href="mailto:quatuorbellefeuille@gmail.com">quatuorbellefeuille@gmail.com</a> + </p> ]]></description> <pubDate>23 Nov 2021 23:28 +0100</pubDate> </item> @@ -191,7 +202,8 @@ <li>Schubert quartettsatz</li> <li>Ravel string quaret</li> </ol> - <p>For more information, please refer to: https://www.ledimoredelquartetto.eu/en/december-31-2021-grand-bigard-castle-brussels-belgium/</p> + <p>For more information, please refer to: <a href="https://www.ledimoredelquartetto.eu/en/december-31-2021-grand-bigard-castle-brussels-belgium/" target="_blank">https://www.ledimoredelquartetto.eu/en/december-31-2021-grand-bigard-castle-brussels-belgium/</a> + </p> ]]></description> </item> <item> @@ -208,7 +220,7 @@ <li>Shostakovich quartet</li> </ol> <p>Free admission, subject to the number of available places.</p> - <p>Contact info@pianorium.fr to make a reservation.</p> + <p>Contact <a href="mailto:info@pianorium.fr">info@pianorium.fr</a> to make a reservation.</p> ]]></description> </item> </channel> diff --git a/feed.xml b/feed.xml @@ -8,8 +8,8 @@ <url>https://quatuorbellefeuille.com/images/logo.svg</url> <link>https://quatuorbellefeuille.com/concerts.html</link> </image> - <lastBuildDate>23 Feb 2022 10:27 +0100</lastBuildDate> - <pubDate>23 Feb 2022 10:27 +0100</pubDate> + <lastBuildDate>23 Feb 2022 20:27 +0100</lastBuildDate> + <pubDate>23 Feb 2022 20:27 +0100</pubDate> <language>fr</language> <item> <title>5 octobre 2019 à Le Buisson de Cadouin</title> @@ -23,7 +23,8 @@ <li>Mendelssohn quatuor n°3, op.44 n°1</li> <li>Ravel quatuor à cordes</li> </ol> - <p>Informations et réservations : https://arcadesinfo.com/évènement/quatuor-a-cordes-bellefeuille/</p> + <p>Informations et réservations : <a href="https://arcadesinfo.com/évènement/quatuor-a-cordes-bellefeuille/" target="_blank">https://arcadesinfo.com/évènement/quatuor-a-cordes-bellefeuille/</a> + </p> ]]></description> </item> <item> @@ -38,7 +39,8 @@ <li>Chostakovitch quatuor n°11</li> <li>Ravel quatuor à cordes</li> </ol> - <p>Informations et réservations : https://musiqueaucoeurdesbastides.jimdofree.com/</p> + <p>Informations et réservations : <a href="https://musiqueaucoeurdesbastides.jimdofree.com/" target="_blank">https://musiqueaucoeurdesbastides.jimdofree.com/</a> + </p> ]]></description> </item> <item> @@ -53,7 +55,8 @@ <li>Beethoven quatuor n°7, op.59 n°1</li> </ol> <p>Entrée libre sans réservation dans la limite des places disponibles.</p> - <p>Pour plus d'informations, merci de contacter : quatuorbellefeuille@gmail.com</p> + <p>Pour plus d'informations, merci de contacter : <a href="mailto:quatuorbellefeuille@gmail.com">quatuorbellefeuille@gmail.com</a> + </p> ]]></description> </item> <item> @@ -67,7 +70,8 @@ <li>Beethoven trio à cordes op.9 n°3</li> </ol> <p>Entrée libre sans réservation, dans la limite des places disponibles.</p> - <p>Pour plus d'informations, merci de contacter : quatuorbellefeuille@gmail.com</p> + <p>Pour plus d'informations, merci de contacter : <a href="mailto:quatuorbellefeuille@gmail.com">quatuorbellefeuille@gmail.com</a> + </p> ]]></description> </item> <item> @@ -83,7 +87,8 @@ <li>Brahms quatuor op.51 n°2</li> <li>Ravel quatuor à cordes</li> </ol> - <p>Informations et réservations : https://weekenddemusiqueclassique.fr</p> + <p>Informations et réservations : <a href="https://weekenddemusiqueclassique.fr" target="_blank">https://weekenddemusiqueclassique.fr</a> + </p> ]]></description> <pubDate>19 Mar 2021 16:00 +0100</pubDate> </item> @@ -100,7 +105,8 @@ <li>Beethoven quatuor n°7, op.59 n°1</li> </ol> <p>Entrée libre sans réservation, dans la limite des places disponibles.</p> - <p>Pour plus d'informations, merci de contacter : quatuorbellefeuille@gmail.com</p> + <p>Pour plus d'informations, merci de contacter : <a href="mailto:quatuorbellefeuille@gmail.com">quatuorbellefeuille@gmail.com</a> + </p> ]]></description> <pubDate>19 Mar 2021 16:00 +0100</pubDate> </item> @@ -115,7 +121,8 @@ <li>Ravel quatuor à cordes</li> </ol> <p>Entrée libre sans réservation, dans la limite des places disponibles.</p> - <p>Pour plus d'informations, merci de contacter : quatuorbellefeuille@gmail.com</p> + <p>Pour plus d'informations, merci de contacter : <a href="mailto:quatuorbellefeuille@gmail.com">quatuorbellefeuille@gmail.com</a> + </p> ]]></description> </item> <item> @@ -129,7 +136,8 @@ <li>Bartók quatuor n°2</li> </ol> <p>Entrée libre sans réservation, dans la limite des places disponibles.</p> - <p>Pour plus d'informations, merci de contacter : quatuorbellefeuille@gmail.com</p> + <p>Pour plus d'informations, merci de contacter : <a href="mailto:quatuorbellefeuille@gmail.com">quatuorbellefeuille@gmail.com</a> + </p> ]]></description> </item> <item> @@ -144,7 +152,8 @@ <li>Schubert quartettsatz</li> <li>Brahms quatuor op.51 n°2</li> </ol> - <p>Pour plus d'informations, rendez-vous sur : https://www.ledimoredelquartetto.eu/en/october-25-2021-le-grand-mello-mello-france/</p> + <p>Pour plus d'informations, rendez-vous sur : <a href="https://www.ledimoredelquartetto.eu/en/october-25-2021-le-grand-mello-mello-france/" target="_blank">https://www.ledimoredelquartetto.eu/en/october-25-2021-le-grand-mello-mello-france/</a> + </p> ]]></description> </item> <item> @@ -159,7 +168,8 @@ <li>Brahms quatuor op.51 n°2</li> <li>Ravel quatuor à cordes</li> </ol> - <p>Pour plus d'informations, rendez-vous sur : https://www.ledimoredelquartetto.eu/en/october-28-2021-casa-st-germain-des-pres-paris/</p> + <p>Pour plus d'informations, rendez-vous sur : <a href="https://www.ledimoredelquartetto.eu/en/october-28-2021-casa-st-germain-des-pres-paris/" target="_blank">https://www.ledimoredelquartetto.eu/en/october-28-2021-casa-st-germain-des-pres-paris/</a> + </p> ]]></description> </item> <item> @@ -175,7 +185,8 @@ <li>Beethoven quatuor n°7, op.59 n°1</li> </ol> <p>Entrée libre sans réservation dans la limite des places disponibles.</p> - <p>Pour plus d'informations, merci de contacter : quatuorbellefeuille@gmail.com</p> + <p>Pour plus d'informations, merci de contacter : <a href="mailto:quatuorbellefeuille@gmail.com">quatuorbellefeuille@gmail.com</a> + </p> ]]></description> <pubDate>23 Nov 2021 23:28 +0100</pubDate> </item> @@ -191,7 +202,8 @@ <li>Schubert quartettsatz</li> <li>Ravel quatuor à cordes</li> </ol> - <p>Pour plus d'informations, rendez-vous sur : https://www.ledimoredelquartetto.eu/en/december-31-2021-grand-bigard-castle-brussels-belgium/</p> + <p>Pour plus d'informations, rendez-vous sur : <a href="https://www.ledimoredelquartetto.eu/en/december-31-2021-grand-bigard-castle-brussels-belgium/" target="_blank">https://www.ledimoredelquartetto.eu/en/december-31-2021-grand-bigard-castle-brussels-belgium/</a> + </p> ]]></description> </item> <item> @@ -208,7 +220,8 @@ <li>Chostakovitch quatuor</li> </ol> <p>Entrée libre dans la limite des places disponibles.</p> - <p>Réservation possible à l'adresse suivante : info@pianorium.fr</p> + <p>Réservation possible à l'adresse suivante : <a href="mailto:info@pianorium.fr">info@pianorium.fr</a> + </p> ]]></description> </item> </channel> diff --git a/helpers.py b/helpers.py @@ -43,6 +43,7 @@ _LICENSE_RE = re.compile( '('+'|'.join(_LICENSE_URLS.keys())+')' + ' ([0-9.]+)' ) + @dataclass class LicenseInfo: tag: str @@ -103,6 +104,7 @@ class Concert: def _optional(line): return f'(?:{line})?' + _CONCERT_LINES = ( r'QUAND : (?P<time>[^\n]+)\n', r'O[UÙ] : (?P<place>[^\n]+)\n',