From a0990513dd61ffbda4026f15f7af214a14bd644a Mon Sep 17 00:00:00 2001 From: theofficialomega <30985701+BellezaEmporium@users.noreply.github.com> Date: Sat, 18 Apr 2026 12:51:50 +0200 Subject: [PATCH] add channels scraping --- sites/france.tv/france.tv.channels.xml | 29 +++++++++++++------------- sites/france.tv/france.tv.config.js | 25 ++++++++++++++++++++-- 2 files changed, 37 insertions(+), 17 deletions(-) diff --git a/sites/france.tv/france.tv.channels.xml b/sites/france.tv/france.tv.channels.xml index 5eb253597..4cf7b227e 100644 --- a/sites/france.tv/france.tv.channels.xml +++ b/sites/france.tv/france.tv.channels.xml @@ -1,19 +1,18 @@ - Arte - France 2 - France 3 - France 4 - France 5 - France 24 - franceinfo: - LCP Public Sénat + Arté + France Télévisions Docs + France 2 + France 3 + France 4 + France 5 + France 24 + Franceinfo + France TV + INA (Institut National de l&#x27;Audiovisuel) + LCP Public Sénat Mieux - TV5 Monde - France.tv Sport - France.tv Docs - France.tv Séries - INA - - France.tv + France Télévisions Séries + France Télévisions Sport + TV5 Monde Plus diff --git a/sites/france.tv/france.tv.config.js b/sites/france.tv/france.tv.config.js index e5cd507e9..84a0ce8b6 100644 --- a/sites/france.tv/france.tv.config.js +++ b/sites/france.tv/france.tv.config.js @@ -98,8 +98,29 @@ module.exports = { return programs }, - channels() { - return 'Website provides no proper channel list, channels must be added manually' + async channels() { + try { + const response = await axios.get('https://www.france.tv/chaines/') + const data = response.data || '' + const channels = [] + + const channelRegex = + /]+aria-controls="[^"]*content-([a-z0-9-]+)"[\s\S]*?([^<]+)<\/title>/gi + + let match + while ((match = channelRegex.exec(data)) !== null) { + channels.push({ + lang: 'fr', + site_id: match[1], + name: match[2].trim() + }) + } + + return [...new Map(channels.map(channel => [channel.site_id, channel])).values()] + } catch (error) { + console.error('Failed to fetch channels list:', error.message) + return [] + } } }