diff --git a/docs/new-media.md b/docs/new-media.md index c0eb32413..71b6315dc 100644 --- a/docs/new-media.md +++ b/docs/new-media.md @@ -706,6 +706,12 @@ area 分区选项 +## 看点快报 + +### 首页 + + + ## 快科技(原驱动之家) ### 最新新闻 diff --git a/lib/router.js b/lib/router.js index fb007326e..69c1a1270 100644 --- a/lib/router.js +++ b/lib/router.js @@ -2968,6 +2968,9 @@ router.get('/12379', require('./routes/12379/index')); router.get('/ngbj/today', require('./routes/niaogebiji/today')); router.get('/ngbj/cat/:cat', require('./routes/niaogebiji/cat')); +// 看点快报 +router.get('/kuaibao', require('./routes/kuaibao/index')); + // SocialBeta router.get('/socialbeta/home', require('./routes/socialbeta/home')); router.get('/socialbeta/hunt', require('./routes/socialbeta/hunt')); diff --git a/lib/routes/kuaibao/index.js b/lib/routes/kuaibao/index.js new file mode 100644 index 000000000..bb5ad15bd --- /dev/null +++ b/lib/routes/kuaibao/index.js @@ -0,0 +1,34 @@ +const got = require('@/utils/got'); + +module.exports = async (ctx) => { + const currentUrl = 'http://kuaibao.qq.com/n/getKbMainpageInfo'; + const response = await got({ + method: 'get', + url: currentUrl, + }); + + const articleList = response.data.newslist.map((item) => ({ + title: item.title, + link: `https://kuaibao.qq.com/getSubNewsContent?id=${item.id}&style=json`, + pubDate: new Date(item.time).toUTCString(), + })); + + ctx.state.data = { + title: '看点快报 - 首页', + link: 'http://kuaibao.qq.com/', + item: await Promise.all( + articleList.map( + async (item) => + await ctx.cache.tryGet(item.link, async () => { + const contentResponse = await got({ + method: 'get', + url: item.link, + }); + item.link = contentResponse.data.url || contentResponse.data.short_url; + item.description = contentResponse.data.content.text; + return item; + }) + ) + ), + }; +};