From c15aee0d38a792f7e14dc25e977cf4f4ac48c6e8 Mon Sep 17 00:00:00 2001 From: Quinn <78063175+quinn-dev@users.noreply.github.com> Date: Tue, 15 Feb 2022 17:21:16 +0000 Subject: [PATCH] fix(route): Fix pubDate and show full title w/ link in description (verfghbw) (#7191) * Fix pubDate, show title w/ link in description * refactor(route): migrate to v2 Co-authored-by: TonyRL --- lib/router.js | 4 ++-- lib/v2/verfghbw/maintainer.js | 3 +++ lib/{routes => v2}/verfghbw/press.js | 18 +++++++++++++----- lib/v2/verfghbw/radar.js | 13 +++++++++++++ lib/v2/verfghbw/router.js | 3 +++ 5 files changed, 34 insertions(+), 7 deletions(-) create mode 100644 lib/v2/verfghbw/maintainer.js rename lib/{routes => v2}/verfghbw/press.js (55%) create mode 100644 lib/v2/verfghbw/radar.js create mode 100644 lib/v2/verfghbw/router.js diff --git a/lib/router.js b/lib/router.js index 5a3ac791c6..40701788b9 100644 --- a/lib/router.js +++ b/lib/router.js @@ -3982,8 +3982,8 @@ router.get('/liyuan-forums/threads/user/:user_id', lazyloadRouteHandler('./route // router.get('/jisilu/reply/:user', lazyloadRouteHandler('./routes/jisilu/reply')); // router.get('/jisilu/topic/:user', lazyloadRouteHandler('./routes/jisilu/topic')); -// Constitutional Court of Baden-Württemberg (Germany) -router.get('/verfghbw/press/:keyword?', lazyloadRouteHandler('./routes/verfghbw/press')); +// Constitutional Court of Baden-Württemberg (Germany) migrated to v2 +// router.get('/verfghbw/press/:keyword?', lazyloadRouteHandler('./routes/verfghbw/press')); // Topbook router.get('/topbook/overview/:id?', lazyloadRouteHandler('./routes/topbook/overview')); diff --git a/lib/v2/verfghbw/maintainer.js b/lib/v2/verfghbw/maintainer.js new file mode 100644 index 0000000000..146611cbd5 --- /dev/null +++ b/lib/v2/verfghbw/maintainer.js @@ -0,0 +1,3 @@ +module.exports = { + '/press/:keyword?': ['quinn-dev'], +}; diff --git a/lib/routes/verfghbw/press.js b/lib/v2/verfghbw/press.js similarity index 55% rename from lib/routes/verfghbw/press.js rename to lib/v2/verfghbw/press.js index 2e37c1496b..afe93d81a8 100644 --- a/lib/routes/verfghbw/press.js +++ b/lib/v2/verfghbw/press.js @@ -1,13 +1,15 @@ const got = require('@/utils/got'); const cheerio = require('cheerio'); +const { parseDate } = require('@/utils/parse-date'); module.exports = async (ctx) => { const keyword = ctx.params.keyword; + const rootUrl = 'https://verfgh.baden-wuerttemberg.de'; let request = { - url: 'https://verfgh.baden-wuerttemberg.de/de/presse-und-service/pressemitteilungen/', + url: `${rootUrl}/de/presse-und-service/pressemitteilungen/`, headers: { - Referer: 'https://verfgh.baden-wuerttemberg.de/de/presse-und-service/pressemitteilungen/', + Referer: `${rootUrl}/de/presse-und-service/pressemitteilungen/`, }, }; @@ -35,10 +37,16 @@ module.exports = async (ctx) => { .map((_, item) => { item = $(item); + const title = item.find('.pressListItemTeaser > h3').text().trim(); + const link = rootUrl + '/' + item.find('.link-download').attr('href'); + item.find('.pressListItemTeaser > h3').replaceWith((_, e) => `

${$(e).html()}

`); + item.find('a').each((_, e) => $(e).attr('href', rootUrl + '/' + $(e).attr('href'))); + return { - title: item.find('.pressListItemTeaser > h3').text().trim(), - link: new URL(item.find('.link-download').attr('href'), 'https://verfgh.baden-wuerttemberg.de/'), - pubDate: new Date(item.find('.pressListItemDate > span').text()).toUTCString(), + title, + link, + description: item.find('.pressListItemTeaser').html(), + pubDate: parseDate(item.find('.pressListItemDate > span').text(), 'DD.MM.YYYY'), }; }) .get(); diff --git a/lib/v2/verfghbw/radar.js b/lib/v2/verfghbw/radar.js new file mode 100644 index 0000000000..ac1a799e46 --- /dev/null +++ b/lib/v2/verfghbw/radar.js @@ -0,0 +1,13 @@ +module.exports = { + 'baden-wuerttemberg.de': { + _name: 'Constitutional Court of Baden-Württemberg (Germany)', + verfgh: [ + { + title: 'Press releases', + docs: 'https://docs.rsshub.app/en/government.html#constitutional-court-of-baden-wurttemberg-germany', + source: ['/de/presse-und-service/pressemitteilungen/'], + target: '/verfghbw/press', + }, + ], + }, +}; diff --git a/lib/v2/verfghbw/router.js b/lib/v2/verfghbw/router.js new file mode 100644 index 0000000000..08d4c48750 --- /dev/null +++ b/lib/v2/verfghbw/router.js @@ -0,0 +1,3 @@ +module.exports = (router) => { + router.get('/press/:keyword?', require('./press')); +};