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, + }; +};