Fichier pour créer un flux RSS avec uniquement les audios.

Notamment pour https://podmust.com/podcast/libre-a-vous

Podmust ne sait pas gérer les flux RSS mixte, il faut un flux
qui contient que des items de type audio.
This commit is contained in:
Frédéric Couchet 2024-05-29 18:45:55 +02:00 committed by Frédéric Couchet
parent 8e79fb4c17
commit f8b1597fd5
2 changed files with 155 additions and 0 deletions

35
squelettes/audios.html Normal file
View File

@ -0,0 +1,35 @@
[(#HTTP_HEADER{Content-type: text/xml[; charset=(#CHARSET)]})]<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:admin="http://webns.net/mvcb/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0" xml:base="https://www.libreavous.org/rss" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Libre à vous ! April et Cause Commune</title>
<link>#URL_SITE_SPIP</link>
[(#REM) Fred: J'ai mis ce lien explicite sinon le validateur https://validator.w3.org/feed/check.cgi
indiquait une erreur "Self reference doesn't match document location" ]
<atom:link href="https://www.libreavous.org/?page=podcasts" rel="self" type="application/rss+xml" />
<description>Chaque mardi de 15 h 30 à 17 h 00, l'April, l'association de promotion et de défense du logiciel libre, propose une émission de radio d'explications et d'échanges concernant les dossiers politiques et juridiques que l'association traite et les actions qu'elle mène : Libre à vous ! https://libreavous.org Une partie de l'émission est également consacrée aux actualités et actions de type sensibilisation. L'émission est diffusée sur radio Cause Commune sur la bande FM en Île-de-France (93.1) et sur le site web de la radio https://cause-commune.fm Donner à chacun et chacune, de manière simple et accessible les clefs pour comprendre les enjeux mais aussi proposer des moyens d'action, tel est l'objectif de l'émission.</description>
<generator>SPIP - www.spip.net</generator>
<itunes:category text="Technology"/>
<itunes:author>April et Radio Cause Commune</itunes:author>
<itunes:summary>Libre à vous ! L'émission de l'April, l'association de promotion et de défense du logiciel libre, sur radio Cause Commune. Prenez le contrôle de vos libertés informatiques, découvrez les enjeux et lactualité du Libre.</itunes:summary>
<itunes:owner>
<itunes:name>April</itunes:name>
<itunes:email>bonjour@libreavous.org</itunes:email>
</itunes:owner>
<itunes:explicit>no</itunes:explicit>
<itunes:image href="https://media.april.org/audio/radio-cause-commune/libre-a-vous/visuels/banniere-libre-a-vous-flux-rss-3000x3000.png"/>
<language>fr</language>
<image>
<title>Libre à vous ! April et Cause Commune</title>
<url>https://april.org/files/libre-a-vous/banniere-libre-a-vous-flux-rss-1400x1400.png</url>
<link>#URL_SITE_SPIP</link>
</image>
<BOUCLE_emissions(ARTICLES) {lang ?}{branche ?}{id_mot ?}{id_auteur ?} {statut=publie} {par date}{inverse}{unique}>
<INCLURE{fond=inc-rss-item-audios, id_article} />
</BOUCLE_emissions>
</channel>
</rss>

View File

@ -0,0 +1,120 @@
[(#REM) Fred : On fait une boucle sur la liste des articles des rubriques Emissions (rubrique n°1)
On utilise le filtre statut=publie pour traiter les articles mis au statut « Publié en ligne » même
si la date de publication de l'article est dans le futur. Cela concerne l'émission à venir.
]
<BOUCLE_un_article(ARTICLES){id_article}{id_rubrique IN 1}{statut=publie}>
[(#ID_RUBRIQUE|=={8}|oui)
<item>
<title>[(#TITRE|texte_backend)]</title>
<guid isPermaLink="false">[(#URL_ARTICLE|url_absolue)]</guid>
<pubDate>[(#DATE|date_822)]</pubDate>
[(#CONFIG{syndication_integrale}|=={oui}|?{' ',''})<content:encoded>[(#LOGO_ARTICLE{right}|image_reduire{150,150}|texte_backend)
]
[&lt;div class='rss_texte'&gt;(#TEXTE|
image_reduire{500,0}|texte_backend)&lt;/div&gt;
][&lt;div class="hyperlien"&gt;<:voir_en_ligne|html2unicode:> : &lt;a href="(#URL_SITE)" class="spip_out"&gt;[(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]}|texte_backend)]&lt;/a&gt;&lt;/div&gt;
][&lt;hr /&gt;
&lt;div class='rss_notes'&gt;(#NOTES|texte_backend)&lt;/div&gt;
][&lt;div class='rss_ps'&gt;(#PS|texte_backend)&lt;/div&gt;]
</content:encoded>
]
</item>
]
[(#ID_RUBRIQUE|=={1}|oui)
[(#PODCAST_DUREE|oui)
<item>
<title>[#(#TITRE|texte_backend)]</title>
<guid isPermaLink="false">[(#URL_ARTICLE|url_absolue)]</guid>
[(#REM) Fred : Pour les podcasts importés on utilise pour le champ pubdate le champ DRUPAL_PUBDATE ce qui permet
d'éviter que les podcasts apparaissent comme nouveaux lors de la bascule du flux RSS april.org vers le
flux RSS libreavous.org ]
[(#DRUPAL_PUBDATE|choixsivide{<pubDate>[(#DATE|date_822)]</pubDate>,<pubDate>#DRUPAL_PUBDATE</pubDate>})]
[(#REM) Fred : On utilise un test sur le champ PODCAST_DUREE, si ce champ est rempli c'est que les fichiers audios
sont disponibles et donc on ajoute les champs enclosure et duration ]
[(#PODCAST_DUREE|choixsivide{"",<enclosure url="https://media.april.org/audio/radio-cause-commune/libre-a-vous/emissions/[(#PODCAST_CODE)]/libre-a-vous-[(#PODCAST_CODE)].ogg" length="0" type="audio/ogg"/>
<enclosure url="https://media.april.org/audio/radio-cause-commune/libre-a-vous/emissions/[(#PODCAST_CODE)]/libre-a-vous-[(#PODCAST_CODE)].mp3" length="0" type="audio/mpeg"/>
<itunes:duration>[(#PODCAST_DUREE|libreavous_remove_microseconds)]</itunes:duration>})]
[(#SET{debut_emission,[(#DATE|annee)-][(#DATE|mois)-][(#DATE|jour|libreavous_aveczerod) ]15:30:00})]
[(#ENV{date}|>{#GET{debut_emission}}|oui)<link>[(#URL_ARTICLE|url_absolue)]</link>]
[(#REM) Fred : sans cette ligne il y a avait un bug d'affichage RSS lors de l'ajout d'une actu]
<description>[(#DESCRIPTION_RSS|propre|texte_backend)][(#PODCAST_SOMMAIRE|propre|texte_backend)][(#PODCAST_DUREE|oui)&lt;p&gt;Pour retrouver toutes les informations concernant l'émission, &lt;a href="[(#URL_ARTICLE|url_absolue)]"&gt;rendez-vous sur la page dédiée&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Sur cette page, vous pouvez commenter les émissions, nous faire des retours pour nous améliorer, ou encore des suggestions. Et même mettre une note sur 5 étoiles si vous le souhaitez.&lt;/p&gt;&lt;p&gt; Il est important pour nous davoir vos retours car, contrairement par exemple à une conférence, nous navons pas un public en face de nous qui peut réagir.&lt;/p&gt;&lt;p&gt;Pour connaître les nouvelles concernant lémission (annonce des podcasts, des émissions à venir, ainsi que des bonus et des annonces en avant-première) &lt;a href="https://www.libreavous.org/contact"&gt;inscrivez-vous à la lettre dactus&lt;/a&gt;.&lt;/p&gt;]</description>
</item>
]
]
[(#REM) Fred : on met dans une variable la valeur de DATE qui correspond à la date de publication de l'article,
utilisé dans le champ pubdate ci-dessus. On doit sauvegarder cette valeur car ensuite dans la boucle sur les
chapitres ci-dessous #DATE aurait pour valeur la date du jour ]
#SET{date_emission,#DATE}
</BOUCLE_un_article>
[(#REM) Fred : Après l'affichage de l'item concernant l'émission et donc le podcast complet, on passe aux sujets
individuels, qui sont dans des chapitres de l'article de l'émission ]
<BOUCLE_chapitres(CHAPITRES){id_article}>
[(#REM) Fred : on fait un test sur le champ OGG, si ce champ est rempli c'est que le fichier podcast du sujet
est disponible ]
<BOUCLE_test(CONDITION){si #OGG|!={""}}>
<item>
<title>[(#TITRE|texte_backend)]</title>
<link>[(#URL_ARTICLE|url_absolue)]</link>
[(#REM) Fred : Pour les podcasts importés on utilise pour le champ pubdate le champ DRUPAL_PUBDATE ce qui permet
d'éviter que les podcasts apparaissent comme nouveaux lors de la bascule du flux RSS april.org vers le
flux RSS libreavous.org.
Pour les podcasts disponibles après l'import initial on utilise la variable date_emission qui contient la date
de publication de l'article de l'émission]
[(#DRUPAL_PUBDATE|choixsivide{<pubDate>[(#GET{date_emission}|date_822)]</pubDate>,<pubDate>#DRUPAL_PUBDATE</pubDate>})]
[(#REM) Fred : Pour les podcasts importés on utilise pour le champ guid le champ DRUPAL_GUID ce qui permet
d'éviter que les podcasts apparaissent comme nouveaux lors de la bascule du flux RSS april.org vers le
flux RSS libreavous.org.
Pour les podcasts disponibles après l'import initial on utilise le champ URL_CHAPITRE pour le guid]
[(#DRUPAL_GUID|choixsivide{<guid isPermaLink="false">[(#URL_CHAPITRE|url_absolue)]</guid>,<guid isPermaLink="false">#DRUPAL_GUID</guid>})]
<enclosure url="https://media.april.org/audio/radio-cause-commune/libre-a-vous/emissions/[(#CODE_PODCAST)]/libre-a-vous-[(#CODE_PODCAST)]-[(#CODE_FICHIER)].ogg" length="0" type="audio/ogg"/>
<enclosure url="https://media.april.org/audio/radio-cause-commune/libre-a-vous/emissions/[(#CODE_PODCAST)]/libre-a-vous-[(#CODE_PODCAST)]-[(#CODE_FICHIER)].mp3" length="0" type="audio/mpeg"/>
[(#REM) Fred : dans les chapitres il n'y a pas de champ de durée du podcast, donc on utilise une fonction pour calculer
la durée à partir des champs DEBUT et FIN. La fonction libreavous_duree_podcast étant définie dans libreavous_fonctions.php ]
[(#DEBUT|oui)[(#FIN|oui)<itunes:duration>[(#DEBUT|libreavous_duree_podcast{#FIN})]</itunes:duration>]]
[(#REM) Fred : On met dans le champ description à la fois les références du sujet et aussi le contenu du
champ DESCRIPTION_RSS qui est optionnel. Ce champ permet de mettre un éventuel commentaire concernant le
sujet individuel ]
<description>[(#DESCRIPTION_RSS|propre|texte_backend)] [(#REFERENCES_SUJET|choixsivide{"",Les références : [(#REFERENCES_SUJET|propre|texte_backend)]})]&lt;p&gt;Vous pouvez commenter les émissions, nous faire des retours pour nous améliorer, ou encore des suggestions. Et même mettre une note sur 5 étoiles si vous le souhaitez.&lt;/p&gt;&lt;p&gt; Il est important pour nous davoir vos retours car, contrairement par exemple à une conférence, nous navons pas un public en face de nous qui peut réagir.&lt;/p&gt; Pour cela, &lt;a href="[(#URL_ARTICLE|url_absolue)]"&gt;rendez-vous sur la page dédiée&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Pour connaître les nouvelles concernant lémission (annonce des podcasts, des émissions à venir, ainsi que des bonus et des annonces en avant-première) &lt;a href="https://www.libreavous.org/contact"&gt;inscrivez-vous à la lettre dactus&lt;/a&gt;.&lt;/p&gt;
[(#REM)
Le bloc qui suit diffuse la rubrique et les mots-cles
sous forme de "microformats"
]
[(#REM) Fred: A priori cette partie est inutile pour nous mais je l'ai laissé ]
<BOUCLE_rubrique_mf(RUBRIQUES){id_rubrique}>-
[&lt;a href="[(#URL_RUBRIQUE|url_absolue)]" rel="directory"&gt;(#TITRE|supprimer_tags|texte_backend)&lt;/a&gt;]
</BOUCLE_rubrique_mf><B_mots_mf>
/ <BOUCLE_mots_mf(MOTS){id_article}{", "}>
[&lt;a href="[(#URL_MOT|url_absolue)]" rel="tag"&gt;(#TITRE|texte_backend)&lt;/a&gt;]</BOUCLE_mots_mf>
</description>
</item>
</BOUCLE_test>
</BOUCLE_chapitres>