From bd9c3afcc5136eb9177e2e6b80fb75180f2997b6 Mon Sep 17 00:00:00 2001 From: Andvari <31068367+dzx-dzx@users.noreply.github.com> Date: Sun, 3 Sep 2023 01:59:33 +0800 Subject: [PATCH] feat(route): Add multi-language support for RFI. (#13147) * feat(route): Add multi-language support for RFI. * Update doc. * Update multimedia.md * Update multimedia.md * Update multimedia.md * Update website/docs/routes/multimedia.md Co-authored-by: Tony * Update news.js * Update multimedia.md * Update multimedia.md * Update news.js --------- --- lib/v2/rfi/maintainer.js | 2 +- lib/v2/rfi/news.js | 11 +++++++++-- lib/v2/rfi/router.js | 2 +- website/docs/routes/multimedia.md | 10 +++++++++- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/lib/v2/rfi/maintainer.js b/lib/v2/rfi/maintainer.js index 169cca9bc..ee48f58b8 100644 --- a/lib/v2/rfi/maintainer.js +++ b/lib/v2/rfi/maintainer.js @@ -1,3 +1,3 @@ module.exports = { - '/news': ['nczitzk'], + '/news/:lang?': ['nczitzk'], }; diff --git a/lib/v2/rfi/news.js b/lib/v2/rfi/news.js index d25a46fb8..886579ab5 100644 --- a/lib/v2/rfi/news.js +++ b/lib/v2/rfi/news.js @@ -3,8 +3,14 @@ const cheerio = require('cheerio'); const { parseDate } = require('@/utils/parse-date'); module.exports = async (ctx) => { + const LANGUAGE = new Map([ + ['en', '/en/live-news/'], + ['fr', '/fr/en-bref/'], + ['cn', '/cn/滚动新闻'], + ]); + const rootUrl = 'https://www.rfi.fr'; - const currentUrl = `${rootUrl}/cn/滚动新闻`; + const currentUrl = `${rootUrl}${LANGUAGE.get(ctx.params.lang ?? 'cn')}`; const response = await got({ method: 'get', url: currentUrl, @@ -42,8 +48,9 @@ module.exports = async (ctx) => { ); ctx.state.data = { - title: '滚动新闻 - 法国国际广播电台', + title: $('title').text(), link: currentUrl, item: items, + language: $("meta[property='og:locale']").attr('content'), }; }; diff --git a/lib/v2/rfi/router.js b/lib/v2/rfi/router.js index 69a5972f6..84ffb5b53 100644 --- a/lib/v2/rfi/router.js +++ b/lib/v2/rfi/router.js @@ -1,3 +1,3 @@ module.exports = function (router) { - router.get('/news', require('./news')); + router.get('/news/:lang?', require('./news')); }; diff --git a/website/docs/routes/multimedia.md b/website/docs/routes/multimedia.md index 9e1a89f32..cbe58390c 100644 --- a/website/docs/routes/multimedia.md +++ b/website/docs/routes/multimedia.md @@ -1551,7 +1551,15 @@ When `mediaType` is `movie`, `sheet` should be: ### 滚动新闻 {#fa-guo-guo-ji-guang-bo-dian-tai-gun-dong-xin-wen} - + + +**lang** + +| en | cn | fr | +| --- | --- | --- | +| 英文 | 中文 | 法文 | + + ## 高清电台 {#gao-qing-dian-tai}