diff --git a/docs/reading.md b/docs/reading.md index 481847214d..4e163df989 100644 --- a/docs/reading.md +++ b/docs/reading.md @@ -64,6 +64,10 @@ pageClass: routes ::: +### 专栏列表 + + + ## 刺猬猫 ### 章节 diff --git a/lib/router.js b/lib/router.js index 8cdacad4e4..fe126902fb 100644 --- a/lib/router.js +++ b/lib/router.js @@ -1907,6 +1907,7 @@ router.get('/engadget/:lang', require('./routes/engadget/home')); // 吹牛部落 router.get('/chuiniu/column/:id', require('./routes/chuiniu/column')); +router.get('/chuiniu/column_list', require('./routes/chuiniu/column_list')); // leemeng router.get('/leemeng', require('./routes/blogs/leemeng')); diff --git a/lib/routes/chuiniu/column_list.js b/lib/routes/chuiniu/column_list.js new file mode 100644 index 0000000000..3c2e9bc0ff --- /dev/null +++ b/lib/routes/chuiniu/column_list.js @@ -0,0 +1,36 @@ +const got = require('@/utils/got'); + +module.exports = async (ctx) => { + const url = 'http://chuiniu.duanshu.com/#/list/column'; + + let response = await got({ + method: 'get', + url: 'http://api.duanshu.com/fairy/api/v1/shop/identifier/', + headers: { + Origin: url, + Referer: url, + }, + }); + const shop_id = response.data.shop_id; + + response = await got({ + method: 'get', + url: `http://api.duanshu.com/h5/content/column/lists?page=1&count=12&shop_id=${shop_id}`, + headers: { + Referer: url, + }, + }); + const list = response.data.response.data; + + const out = list.map((item) => ({ + link: `http://chuiniu.duanshu.com/#/brief/column/${item.column_id}`, + title: item.title, + description: item.brief, + })); + + ctx.state.data = { + title: '吹牛部落专栏列表', + link: url, + item: out, + }; +};