diff --git a/assets/radar-rules.js b/assets/radar-rules.js index b540f6dfc..e5e249811 100644 --- a/assets/radar-rules.js +++ b/assets/radar-rules.js @@ -967,4 +967,15 @@ }, ], }, + 'xiaomi.cn': { + _name: '小米社区', + www: [ + { + title: '圈子', + docs: 'https://docs.rsshub.app/bbs.html#xiao-mi-she-qu', + source: '/board/:boardId', + target: '/mi/bbs/board/:boardId', + }, + ], + }, }); diff --git a/docs/bbs.md b/docs/bbs.md index bce1e8e55..87e67c665 100644 --- a/docs/bbs.md +++ b/docs/bbs.md @@ -177,6 +177,12 @@ pageClass: routes +## 小米社区 + +### 圈子 + + + ## 一亩三分地 ### 主题帖 diff --git a/lib/router.js b/lib/router.js index 10ca0a6ee..18739ab19 100644 --- a/lib/router.js +++ b/lib/router.js @@ -371,8 +371,8 @@ router.get('/hexo/yilia/:url', require('./routes/hexo/yilia')); router.get('/mi/crowdfunding', require('./routes/mi/crowdfunding')); router.get('/mi/youpin/crowdfunding', require('./routes/mi/youpin/crowdfunding')); router.get('/mi/youpin/new', require('./routes/mi/youpin/new')); -// MIUI 更新 router.get('/miui/:device/:type?/:region?', require('./routes/mi/miui/index')); +router.get('/mi/bbs/board/:boardId', require('./routes/mi/board')); // Keep router.get('/keep/user/:id', require('./routes/keep/user')); diff --git a/lib/routes/mi/board.js b/lib/routes/mi/board.js new file mode 100644 index 000000000..a6187812e --- /dev/null +++ b/lib/routes/mi/board.js @@ -0,0 +1,36 @@ +const got = require('@/utils/got'); + +module.exports = async (ctx) => { + const boardId = ctx.params.boardId; + const link = `https://www.xiaomi.cn/board/${boardId}`; + + const response = await got({ + method: 'get', + url: `https://prod.api.xiaomi.cn/community/board/home/announce/list?after=&limit=20&boardId=${boardId}`, + headers: { + Referer: link, + }, + }); + const data = response.data.entity.records; + const name = data && data[0].boards[0].boardName; + + ctx.state.data = { + title: name + '-小米社区', + link: link, + item: data.map((item) => { + let picTpl = ''; + if (item.picList && item.picList.length) { + item.picList.forEach((pic) => { + picTpl += `
`; + }); + } + return { + title: item.title || item.textContent, + description: item.textContent + picTpl, + pubDate: new Date(item.createTime).toUTCString(), + author: item.author.name, + link: `https://www.xiaomi.cn/post/${item.id}`, + }; + }), + }; +};