From cacf988b2c5fa03aa523cf337445b450b35996a3 Mon Sep 17 00:00:00 2001 From: Quinn <78063175+quinn-dev@users.noreply.github.com> Date: Sun, 14 Mar 2021 06:28:14 +0000 Subject: [PATCH] =?UTF-8?q?feat(route):=20Add=20route=20for=20Constitution?= =?UTF-8?q?al=20Court=20of=20Baden-W=C3=BCrttemberg=20(Germany)=20(#7143)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: NeverBehave --- docs/en/government.md | 7 +++++ lib/router.js | 3 +++ lib/routes/verfghbw/press.js | 52 ++++++++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 lib/routes/verfghbw/press.js diff --git a/docs/en/government.md b/docs/en/government.md index 567dc1159..c1b1a70da 100644 --- a/docs/en/government.md +++ b/docs/en/government.md @@ -9,6 +9,13 @@ pageClass: routes ### Annual FOIA Reports + +## Constitutional Court of Baden-Württemberg (Germany) + +### Press releases + + + ## Ministry of Foreign Affairs of Japan ### Press conference diff --git a/lib/router.js b/lib/router.js index db4df8d20..262dd4a04 100644 --- a/lib/router.js +++ b/lib/router.js @@ -4042,4 +4042,7 @@ router.get('/wainao-reads/all-articles', require('./routes/wainao/index')); // react router.get('/react/react-native-weekly', require('./routes/react/react-native-weekly')); +// Constitutional Court of Baden-Württemberg (Germany) +router.get('/verfghbw/press/:keyword?', require('./routes/verfghbw/press')); + module.exports = router; diff --git a/lib/routes/verfghbw/press.js b/lib/routes/verfghbw/press.js new file mode 100644 index 000000000..2e37c1496 --- /dev/null +++ b/lib/routes/verfghbw/press.js @@ -0,0 +1,52 @@ +const got = require('@/utils/got'); +const cheerio = require('cheerio'); + +module.exports = async (ctx) => { + const keyword = ctx.params.keyword; + + let request = { + url: 'https://verfgh.baden-wuerttemberg.de/de/presse-und-service/pressemitteilungen/', + headers: { + Referer: 'https://verfgh.baden-wuerttemberg.de/de/presse-und-service/pressemitteilungen/', + }, + }; + + if (keyword) { + request = { + method: 'post', + form: { + 'tx_bwlistheader_list[search][keywords]': keyword, + }, + ...request, + }; + } else { + request = { + method: 'get', + ...request, + }; + } + + const response = await got(request); + + const data = response.data; + const $ = cheerio.load(data); + + const list = $('.pressListItem') + .map((_, item) => { + item = $(item); + + 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(), + }; + }) + .get(); + + ctx.state.data = { + title: 'Verfassungsgerichtshof Baden-Württemberg - Pressemitteilungen', + link: request.url, + description: 'Pressemitteilungen des Verfassungsgerichtshof für das Land Baden-Württemberg', + item: list, + }; +};