diff --git a/docs/programming.md b/docs/programming.md index 0939e059ba..b5bee91c48 100644 --- a/docs/programming.md +++ b/docs/programming.md @@ -48,6 +48,8 @@ + + ## Dockone diff --git a/lib/router.js b/lib/router.js index 205e54fa4e..30005ac9f0 100755 --- a/lib/router.js +++ b/lib/router.js @@ -157,6 +157,7 @@ router.get('/juejin/pins', require('./routes/juejin/pins')); router.get('/juejin/posts/:id', require('./routes/juejin/posts')); router.get('/juejin/collections/:userId', require('./routes/juejin/favorites')); router.get('/juejin/collection/:collectionId', require('./routes/juejin/collection')); +router.get('/juejin/shares/:userId', require('./routes/juejin/shares')); // 自如 router.get('/ziroom/room/:city/:iswhole/:room/:keyword', require('./routes/ziroom/room')); diff --git a/lib/routes/juejin/shares.js b/lib/routes/juejin/shares.js new file mode 100644 index 0000000000..a8083cf86b --- /dev/null +++ b/lib/routes/juejin/shares.js @@ -0,0 +1,26 @@ +const axios = require('../../utils/axios'); +const util = require('./utils'); + +module.exports = async (ctx) => { + const id = ctx.params.userId; + + const response = await axios({ + method: 'get', + url: `https://timeline-merger-ms.juejin.im/v1/get_entry_by_self?src=web&targetUid=${id}&type=article&order=createdAt`, + headers: { + Host: 'timeline-merger-ms.juejin.im', + Origin: 'https://juejin.im', + Referer: `https://juejin.im/user/${id}/shares`, + }, + }); + const data = response.data.d.entrylist; + const username = data && data[0] && data[0].user && data[0].user.username; + const resultItems = await util.ProcessFeed(data, ctx.cache); + + ctx.state.data = { + title: `掘金分享-${username}`, + link: `https://juejin.im/user/${id}/shares`, + description: `掘金分享-${username}`, + item: resultItems, + }; +};