From c862aef975e859481b8b391cf99fc68cdf85a0bd Mon Sep 17 00:00:00 2001 From: "Jiayue. Zhang" Date: Fri, 31 Jan 2020 17:56:13 +0900 Subject: [PATCH] feat: add route for nikkei (#3785) --- assets/radar-rules.js | 11 +++++++++++ docs/traditional-media.md | 9 +++++++++ lib/router.js | 3 +++ lib/routes/nikkei/index.js | 34 ++++++++++++++++++++++++++++++++++ 4 files changed, 57 insertions(+) create mode 100644 lib/routes/nikkei/index.js diff --git a/assets/radar-rules.js b/assets/radar-rules.js index e5e2498111..cb2fd0d1f7 100644 --- a/assets/radar-rules.js +++ b/assets/radar-rules.js @@ -978,4 +978,15 @@ }, ], }, + 'nikkei.com': { + _name: '日本経済新聞', + www: [ + { + title: 'ホームページ', + docs: 'https://docs.rsshub.app/traditional-media.html#ri-ben-jing-ji-xin-wen', + source: '/', + target: '/nikkei/index', + }, + ], + }, }); diff --git a/docs/traditional-media.md b/docs/traditional-media.md index 407618e904..6469d799b9 100644 --- a/docs/traditional-media.md +++ b/docs/traditional-media.md @@ -320,6 +320,15 @@ category 对应的关键词有 +## 日本経済新聞 + +### ホームページ + + + +日文版首页 + + ## 卫报 The Guardian 通过提取文章全文,以提供比官方源更佳的阅读体验。 diff --git a/lib/router.js b/lib/router.js index 18b6b47317..d254bef257 100644 --- a/lib/router.js +++ b/lib/router.js @@ -2160,4 +2160,7 @@ router.get('/coronavirus/dxy', require('./routes/coronavirus/dxy')); router.get('/coronavirus/scmp', require('./routes/coronavirus/scmp')); router.get('/coronavirus/nhc', require('./routes/coronavirus/nhc')); +// 日本経済新聞 +router.get('/nikkei/index', require('./routes/nikkei/index')); + module.exports = router; diff --git a/lib/routes/nikkei/index.js b/lib/routes/nikkei/index.js new file mode 100644 index 0000000000..8460ef2eeb --- /dev/null +++ b/lib/routes/nikkei/index.js @@ -0,0 +1,34 @@ +const got = require('@/utils/got'); +const cheerio = require('cheerio'); + +module.exports = async (ctx) => { + const url = 'https://www.nikkei.com'; + const response = await got({ method: 'get', url }); + const $ = cheerio.load(response.data); + + const list = $('div[data-rn-track-category]') + .map((_, e) => { + const element = $(e); + const title = element.data('rn-track-value').title; + const link = url + element.find('a').attr('href'); + + const src = element.find('img').attr('src'); + const dataSrc = element.find('img').attr('data-src'); + + const imgSrc = dataSrc ? dataSrc : src; + const desc = `` + element.find('div .k-card__excerpt'); + + return { + title: title, + description: desc, + link: link, + }; + }) + .get(); + + ctx.state.data = { + title: '日本経済新聞', + link: url, + item: list, + }; +};