From dd135433f428a733f0cbe88f6add4017cd3add52 Mon Sep 17 00:00:00 2001 From: miaoyafeng <6105466@qq.com> Date: Fri, 27 Dec 2019 16:26:46 +0800 Subject: [PATCH] feat: add Inside Design & Product Hunt (#3636) --- docs/design.md | 7 +++++++ docs/en/design.md | 7 +++++++ docs/en/other.md | 9 +++++++++ docs/other.md | 9 +++++++++ lib/router.js | 6 ++++++ lib/routes/invisionapp/inside-design.js | 24 ++++++++++++++++++++++++ lib/routes/producthunt/today.js | 24 ++++++++++++++++++++++++ 7 files changed, 86 insertions(+) create mode 100644 lib/routes/invisionapp/inside-design.js create mode 100644 lib/routes/producthunt/today.js diff --git a/docs/design.md b/docs/design.md index dd0eba955a..f7fac83e53 100644 --- a/docs/design.md +++ b/docs/design.md @@ -18,6 +18,13 @@ pageClass: routes +## Inside Design + +### Recent Stories + + + + ## UI 中国 ### 推荐文章 diff --git a/docs/en/design.md b/docs/en/design.md index 4982671768..5d793fc848 100644 --- a/docs/en/design.md +++ b/docs/en/design.md @@ -17,3 +17,10 @@ pageClass: routes ### Keyword + +## Inside Design + +### Recent Stories + + + diff --git a/docs/en/other.md b/docs/en/other.md index e8cb31e1fd..5d3dea9e58 100644 --- a/docs/en/other.md +++ b/docs/en/other.md @@ -79,6 +79,15 @@ pageClass: routes +## Product Hunt + +> The official feed: [https://www.producthunt.com/feed](https://www.producthunt.com/feed) + +### Today Popular + + + + ## Remote.work ### Remote.work Job Information diff --git a/docs/other.md b/docs/other.md index 2a3778f841..0eb3aa987a 100644 --- a/docs/other.md +++ b/docs/other.md @@ -91,6 +91,15 @@ pageClass: routes +## Product Hunt + +> 官方 Feed 地址为: [https://www.producthunt.com/feed](https://www.producthunt.com/feed) + +### Today Popular + + + + ## SANS Institute ### 最新会议材料 diff --git a/lib/router.js b/lib/router.js index c63ad5d194..72d6ff8154 100644 --- a/lib/router.js +++ b/lib/router.js @@ -2052,4 +2052,10 @@ router.get('/xinwenlianbo/index', require('./routes/xinwenlianbo/index')); // Paul Graham - Essays router.get('/blogs/paulgraham', require('./routes/blogs/paulgraham')); +// invisionapp +router.get('/invisionapp/inside-design', require('./routes/invisionapp/inside-design')); + +// producthunt +router.get('/producthunt/today', require('./routes/producthunt/today')); + module.exports = router; diff --git a/lib/routes/invisionapp/inside-design.js b/lib/routes/invisionapp/inside-design.js new file mode 100644 index 0000000000..7500951dad --- /dev/null +++ b/lib/routes/invisionapp/inside-design.js @@ -0,0 +1,24 @@ +const got = require('@/utils/got'); +const cheerio = require('cheerio'); + +module.exports = async (ctx) => { + const response = await got.get('https://www.invisionapp.com/inside-design/'); + + const $ = cheerio.load(response.data); + + const list = $('#recent-stories #articles-wrapper > div'); + ctx.state.data = { + title: 'Inside Design', + link: 'https://www.invisionapp.com/inside-design/', + item: list + .map((i, item) => { + const itemDom = $(item); + return { + title: itemDom.find('.text h3').text(), + description: ``, + link: 'https://www.invisionapp.com' + itemDom.find('.hover > a').attr('href'), + }; + }) + .get(), + }; +}; diff --git a/lib/routes/producthunt/today.js b/lib/routes/producthunt/today.js new file mode 100644 index 0000000000..df79d51f32 --- /dev/null +++ b/lib/routes/producthunt/today.js @@ -0,0 +1,24 @@ +const got = require('@/utils/got'); +const cheerio = require('cheerio'); + +module.exports = async (ctx) => { + const response = await got.get('https://www.producthunt.com/'); + + const $ = cheerio.load(response.data); + + const list = $('ul[class^="postsList"] li'); + ctx.state.data = { + title: 'Product Hunt Today Popular', + link: 'https://www.producthunt.com/', + item: list + .map((i, item) => { + const itemDom = $(item); + return { + title: itemDom.find('h3').text(), + description: `${itemDom.find('h3 + p').text()}
`, + link: 'https://www.producthunt.com' + itemDom.find('a').attr('href'), + }; + }) + .get(), + }; +};