diff --git a/docs/README.md b/docs/README.md index bcbe2dbed9..ee0c3a5587 100755 --- a/docs/README.md +++ b/docs/README.md @@ -3178,6 +3178,16 @@ type 为 all 时,category 参数不支持 cost 和 free +### 西祠胡同 + + + +| 首页推荐 | 民生 | 情感 | 亲子 | +| -------- | ---- | ---- | ---- | +| (空) | ms | qg | qz | + + + ### 今日热榜 diff --git a/lib/router.js b/lib/router.js index b9b97eb056..faa8b9a122 100755 --- a/lib/router.js +++ b/lib/router.js @@ -1150,6 +1150,9 @@ router.get('/blogs/jingwei.link', require('./routes/blogs/jingwei_link')); router.get('/uraaka-joshi', require('./routes/uraaka-joshi/uraaka-joshi')); router.get('/uraaka-joshi/:id', require('./routes/uraaka-joshi/uraaka-joshi-user')); +// 西祠胡同 +router.get('/xici/:id?', require('./routes/xici')); + // 今日热榜 router.get('/tophub/:id', require('./routes/tophub')); diff --git a/lib/routes/xici/index.js b/lib/routes/xici/index.js new file mode 100644 index 0000000000..b75a300a55 --- /dev/null +++ b/lib/routes/xici/index.js @@ -0,0 +1,43 @@ +const axios = require('../../utils/axios'); +const cheerio = require('cheerio'); +const url = require('url'); + +const host = 'http://www.xici.net/t/'; + +module.exports = async (ctx) => { + const id = ctx.params.id || '..'; + + const link = url.resolve(host, id); + const response = await axios.get(link); + const $ = cheerio.load(response.data); + + const title = $('a.actived').text(); + const out = $('ul.feed-list li[data-score]') + .slice(0, 10) + .map(function() { + const info = { + title: $(this) + .find('div.title a') + .text(), + link: + 'http:' + + $(this) + .find('div.title a') + .attr('href'), + pubDate: $(this) + .find('span.time') + .attr('data-timeago'), + author: $(this) + .find('a.board-link') + .text(), + }; + return info; + }) + .get(); + + ctx.state.data = { + title: `${title}-西祠胡同`, + link: link, + item: out, + }; +};