summaryrefslogtreecommitdiff
path: root/config/services
diff options
context:
space:
mode:
authorQuentin Aristote <quentin@aristote.fr>2022-06-12 17:07:56 +0200
committerQuentin Aristote <quentin@aristote.fr>2022-06-12 17:07:56 +0200
commit23739c7eb1ea9a3eb15e6002ba78000ad20bd5da (patch)
tree9f6533ac891274f735fef1df630ea86069565072 /config/services
parent87afaf3d24a658417bc278b85845a426b46c72f3 (diff)
add bridge for live radio concerts at maison de la radio
Diffstat (limited to 'config/services')
-rw-r--r--config/services/web/rss/MaisonDeLaRadioBridge.php36
-rw-r--r--config/services/web/rss/default.nix3
2 files changed, 38 insertions, 1 deletions
diff --git a/config/services/web/rss/MaisonDeLaRadioBridge.php b/config/services/web/rss/MaisonDeLaRadioBridge.php
new file mode 100644
index 0000000..2e6037b
--- /dev/null
+++ b/config/services/web/rss/MaisonDeLaRadioBridge.php
@@ -0,0 +1,36 @@
+<?php
+
+$GLOBALS['DATE_FORMATTER'] = new IntlDateFormatter(
+ "fr-FR",
+ IntlDateFormatter::FULL,
+ IntlDateFormatter::NONE,
+ 'Etc/UTC',
+ IntlDateFormatter::GREGORIAN,
+ 'EEEE dd MMMM y'
+);
+
+class MaisonDeLaRadioBridge extends XPathAbstract {
+ const NAME = 'Maison de la Radio Bridge';
+ const URI = 'https://www.maisondelaradioetdelamusique.fr/agenda?type=3188';
+ const DESCRIPTION = 'Live Radio France concerts at Maison de la Radio.';
+ const MAINTAINER = 'Quentin Aristote';
+ const CACHE_TIMEOUT = 1; // 12h
+
+ const FEED_SOURCE_URL = 'https://www.maisondelaradioetdelamusique.fr/agenda?type=3188';
+ const XPATH_EXPRESSION_ITEM = '//a[@class="agenda-event-link"]';
+ const XPATH_EXPRESSION_ITEM_TITLE = './/h3';
+ const XPATH_EXPRESSION_ITEM_CONTENT = './/div[@class="summary]';
+ const XPATH_EXPRESSION_ITEM_URI = './@href';
+ const XPATH_EXPRESSION_ITEM_AUTHOR = './/div[@class="type"]';
+ const XPATH_EXPRESSION_ITEM_TIMESTAMP = './../div[@class="date"]';
+ const XPATH_EXPRESSION_ITEM_ENCLOSURES = './/img/@src';
+ const XPATH_EXPRESSION_ITEM_CATEGORIES = './/span[@class="location"]';
+
+ public function getIcon() {
+ return 'https://rf-maisondelaradio-production.s3.eu-west-3.amazonaws.com/s3fs-public/mdlrfavicon22.ico';
+ }
+
+ protected function formatItemTimestamp($value) {
+ return $GLOBALS['DATE_FORMATTER']->parse($value);
+ }
+}
diff --git a/config/services/web/rss/default.nix b/config/services/web/rss/default.nix
index 1ed96ce..4d7dd18 100644
--- a/config/services/web/rss/default.nix
+++ b/config/services/web/rss/default.nix
@@ -7,6 +7,7 @@ let
oldAttrs // {
installPhase = oldAttrs.installPhase + ''
ln -sf ${./ParisJazzClubBridge.php} $out/bridges/ParisJazzClubBridge.php
+ ln -sf ${./MaisonDeLaRadioBridge.php} $out/bridges/MaisonDeLaRadioBridge.php
'' + lib.optionalString debug ''
touch $out/DEBUG
'';
@@ -14,7 +15,7 @@ let
in {
services.rss-bridge = {
enable = true;
- whitelist = [ "ParisJazzClub" ];
+ whitelist = [ "ParisJazzClub" "MaisonDeLaRadio" ];
virtualHost = "rss";
};