diff --git a/docs/programming.md b/docs/programming.md
index 54bf471576..999b9b78ab 100644
--- a/docs/programming.md
+++ b/docs/programming.md
@@ -472,7 +472,13 @@ GitHub 官方也提供了一些 RSS:
### 沸点
-
+
+
+| 推荐 | 热门 | 上班摸鱼 | 内推招聘 | 一图胜千言 | 今天学到了 | 每天一道算法题 | 开发工具推荐 | 树洞一下 |
+| --------- | ---- | ------ | ------------------- | ------------------- | ------------------- | ------------------- | ------------------- | ------------------- | ------------------- |
+| recommend | hot | 6824710203301167112 | 6819970850532360206 | 6824710202487472141 | 6824710202562969614 | 6824710202378436621 | 6824710202000932877 | 6824710203112423437 |
+
+
### 专栏
diff --git a/lib/router.js b/lib/router.js
index 660e66a454..a57d7b9f78 100644
--- a/lib/router.js
+++ b/lib/router.js
@@ -126,7 +126,7 @@ 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('/juejin/pins/:type?', 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'));
diff --git a/lib/routes/juejin/pins.js b/lib/routes/juejin/pins.js
index eeee7f0166..44afe2d897 100644
--- a/lib/routes/juejin/pins.js
+++ b/lib/routes/juejin/pins.js
@@ -1,17 +1,40 @@
const got = require('@/utils/got');
module.exports = async (ctx) => {
+ const type = ctx.params.type || 'recommend';
+ const title = {
+ recommend: '推荐',
+ hot: '热门',
+ '6824710203301167112': '上班摸鱼',
+ '6819970850532360206': '内推招聘',
+ '6824710202487472141': '一图胜千言',
+ '6824710202562969614': '今天学到了',
+ '6824710202378436621': '每天一道算法题',
+ '6824710202000932877': '开发工具推荐',
+ '6824710203112423437': '树洞一下',
+ };
+
+ let url = '';
+ let json = null;
+ if (/^\d+$/.test(type)) {
+ url = `https://api.juejin.cn/recommend_api/v1/short_msg/topic`;
+ json = { id_type: 4, sort_type: 500, cursor: '0', limit: 20, topic_id: type };
+ } else {
+ url = `https://api.juejin.cn/recommend_api/v1/short_msg/${type}`;
+ json = { id_type: 4, sort_type: 200, cursor: '0', limit: 20 };
+ }
+
const response = await got({
method: 'post',
- url: 'https://apinew.juejin.im/recommend_api/v1/short_msg/recommend',
- json: { id_type: 4, sort_type: 300, cursor: '0', limit: 20 },
+ url,
+ json,
});
const items = response.data.data.map((item) => {
const content = item.msg_Info.content;
const title = content;
const guid = item.msg_id;
- const link = `https://juejin.im/pin/${guid}`;
+ const link = `https://juejin.cn/pin/${guid}`;
const pubDate = new Date(parseInt(item.msg_Info.ctime) * 1000).toUTCString();
const author = item.author_user_info.user_name;
const imgs = item.msg_Info.pic_list.reduce((imgs, item) => {
@@ -36,7 +59,7 @@ module.exports = async (ctx) => {
});
ctx.state.data = {
- title: '沸点 - 推荐',
+ title: `沸点 - ${title[type]}`,
link: 'https://juejin.im/pins/recommended',
item: items,
};