From 06f2a9846ed85a03869f2861bfe93bec56f0197c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=87=89=E5=87=89?= Date: Sat, 3 Nov 2018 11:07:04 +0800 Subject: [PATCH] =?UTF-8?q?Enhancement:=20=20=E6=8E=98=E9=87=91=20(#1048)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加小册上新提醒、沸点 --- docs/README.md | 6 ++++++ router.js | 2 ++ routes/juejin/books.js | 27 +++++++++++++++++++++++++++ routes/juejin/pins.js | 36 ++++++++++++++++++++++++++++++++++++ 4 files changed, 71 insertions(+) create mode 100644 routes/juejin/books.js create mode 100644 routes/juejin/pins.js diff --git a/docs/README.md b/docs/README.md index 27f3bf551..95dbec2a5 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 14ebdfb73..72bad69bc 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 000000000..39835fc6b --- /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 000000000..7c170110c --- /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, + }; + }), + }; +};