diff --git a/docs/social-media.md b/docs/social-media.md
index 51caf69251..0b681a20d4 100644
--- a/docs/social-media.md
+++ b/docs/social-media.md
@@ -682,6 +682,10 @@ pageClass: routes
+### 公众号 (二十次幂来源)
+
+
+
### 公众平台系统公告栏目
diff --git a/lib/router.js b/lib/router.js
index 2924f46e43..e85af999ac 100644
--- a/lib/router.js
+++ b/lib/router.js
@@ -451,6 +451,7 @@ router.get('/wechat/announce', require('./routes/tencent/wechat/announce'));
router.get('/wechat/miniprogram/plugins', require('./routes/tencent/wechat/miniprogram/plugins'));
router.get('/wechat/tgchannel/:id', require('./routes/tencent/wechat/tgchannel'));
router.get('/wechat/uread/:userid', require('./routes/tencent/wechat/uread'));
+router.get('/wechat/ershicimi/:id', require('./routes/tencent/wechat/ershcimi'));
// All the Flight Deals
router.get('/atfd/:locations/:nearby?', require('./routes/atfd/index'));
diff --git a/lib/routes/tencent/wechat/ershcimi.js b/lib/routes/tencent/wechat/ershcimi.js
new file mode 100644
index 0000000000..a447cbbcb0
--- /dev/null
+++ b/lib/routes/tencent/wechat/ershcimi.js
@@ -0,0 +1,27 @@
+const got = require('@/utils/got');
+const cheerio = require('cheerio');
+
+module.exports = async (ctx) => {
+ const { id } = ctx.params;
+ const url = `https://www.ershicimi.com/a/${id}`;
+ const response = await got(url);
+ const $ = cheerio.load(response.data);
+ const name = $('#wrapper > .yheader > .info-wrap .name').text();
+ const description = $('#wrapper .right > .Card .Profile-sideColumnItemValue').text();
+ const items = $('.weui_media_box')
+ .map((_, ele) => {
+ const $item = cheerio.load(ele);
+ return {
+ title: $item('.weui_media_title a').text(),
+ link: $item('.weui_media_title a').attr('href'),
+ pubDate: new Date($item('.weui_media_extra_info').attr('title')).toUTCString(),
+ };
+ })
+ .get();
+ ctx.state.data = {
+ title: `微信公众号 - ${name}`,
+ link: url,
+ description,
+ item: items,
+ };
+};