diff --git a/docs/README.md b/docs/README.md index 27f3bf551a..95dbec2a58 100644 --- a/docs/README.md +++ b/docs/README.md @@ -586,6 +586,12 @@ RSSHub 提供下列 API 接口: + + +> 掘金小册需要付费订阅, RSS 仅做更新提醒, 不含付费内容. + + + ### Dockone diff --git a/router.js b/router.js index 14ebdfb733..72bad69bce 100644 --- a/router.js +++ b/router.js @@ -143,6 +143,8 @@ router.get('/ncm/djradio/:id', require('./routes/ncm/djradio')); router.get('/juejin/category/:category', require('./routes/juejin/category')); router.get('/juejin/tag/:tag', require('./routes/juejin/tag')); router.get('/juejin/trending/:category/:type', require('./routes/juejin/trending')); +router.get('/juejin/books', require('./routes/juejin/books')); +router.get('/juejin/pins', require('./routes/juejin/pins')); // 自如 router.get('/ziroom/room/:city/:iswhole/:room/:keyword', require('./routes/ziroom/room')); diff --git a/routes/juejin/books.js b/routes/juejin/books.js new file mode 100644 index 0000000000..39835fc6b3 --- /dev/null +++ b/routes/juejin/books.js @@ -0,0 +1,27 @@ +const axios = require('../../utils/axios'); + +module.exports = async (ctx) => { + const response = await axios({ + method: 'get', + url: 'https://xiaoce-timeline-api-ms.juejin.im/v1/getListByLastTime?uid=&client_id=&token=&src=web&alias=&pageNum=1', + }); + + const data = response.data.d; + + ctx.state.data = { + title: '掘金小册', + link: 'https://juejin.im/books', + item: data.map(({ title, id, img, desc, createdAt, price }) => ({ + title, + link: `https://juejin.im/book/${id}`, + description: ` +
+ ${title}

+ ${desc}
+ 价格: ${price}元 + `, + pubDate: new Date(createdAt).toUTCString(), + guid: id, + })), + }; +}; diff --git a/routes/juejin/pins.js b/routes/juejin/pins.js new file mode 100644 index 0000000000..7c170110ce --- /dev/null +++ b/routes/juejin/pins.js @@ -0,0 +1,36 @@ +const axios = require('../../utils/axios'); + +module.exports = async (ctx) => { + const response = await axios({ + method: 'get', + url: 'https://short-msg-ms.juejin.im/v1/pinList/recommend?uid=&device_id=&token=&src=web&before&limit=50', + }); + + const data = response.data.d.list; + + ctx.state.data = { + title: '沸点 - 掘金', + link: 'https://juejin.im/pins', + item: data.map(({ content, objectId, createdAt, user, pictures, url, urlTitle }) => { + const imgs = pictures.reduce((imgs, item) => { + imgs += ` +
+ `; + return imgs; + }, ''); + + return { + title: content, + link: `https://juejin.im/pin/${objectId}`, + description: ` + ${content}
+ ${imgs}
+ ${urlTitle}
+ `, + pubDate: new Date(createdAt).toUTCString(), + author: user.username, + guid: objectId, + }; + }), + }; +};