diff --git a/docs/README.md b/docs/README.md index 9479e948b..b1619a26c 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1318,6 +1318,10 @@ GitHub 官方也提供了一些 RSS: +### Xiaomi.eu + + + ## 大学通知 ### 上海海事大学 diff --git a/lib/router.js b/lib/router.js index 9f843425c..53fbf6bac 100644 --- a/lib/router.js +++ b/lib/router.js @@ -1068,6 +1068,9 @@ router.get('/hupu/bxj/:id/:order?', require('./routes/hupu/bxj')); // 牛客网 router.get('/nowcoder/discuss/:type/:order', require('./routes/nowcoder/discuss')); +// Xiaomi.eu +router.get('/xiaomieu/releases', require('./routes/xiaomieu/releases')); + // 每日安全 router.get('/security/pulses', require('./routes/security/pulses')); diff --git a/lib/routes/xiaomieu/releases.js b/lib/routes/xiaomieu/releases.js new file mode 100644 index 000000000..f799d99d1 --- /dev/null +++ b/lib/routes/xiaomieu/releases.js @@ -0,0 +1,28 @@ +const axios = require('../../utils/axios'); +const cheerio = require('cheerio'); + +module.exports = async (ctx) => { + const res = await axios.get('https://xiaomi.eu/community/forums/miui-rom-releases.103/'); + const $ = cheerio.load(res.data); + const threads = await Promise.all( + $('.structItem--thread') + .map(async (idx, th) => { + const $th = $(th); + const $ver = $th.find('.structItem-title>a:nth-child(1)'); + const $title = $th.find('.structItem-title>a:nth-child(2)'); + const title = `[${$ver.text()}] ${$title.text()}`; + const link = `https://xiaomi.eu${$title.attr('href')}`; + const res = await axios.get(link); + const $$ = cheerio.load(res.data); + const description = $$('.bbWrapper').html(); + const pubDate = new Date($$('time').attr('datetime')).toUTCString(); + return { title, description, link, pubDate }; + }) + .toArray() + ); + ctx.state.data = { + title: 'Xiaomi.eu ROM Releases', + link: 'https://xiaomi.eu/community/forums/miui-rom-releases.103/', + item: threads, + }; +};