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,
+ };
+};