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