From 26d08ee04741c55c890a7c529643ee22b567bd36 Mon Sep 17 00:00:00 2001 From: sanmmmm Date: Sat, 20 Jul 2019 12:54:32 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=85=AC=E4=BC=97=E5=8F=B7=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E4=BA=8C=E5=8D=81=E6=AC=A1=E5=B9=82=E8=BE=93=E5=87=BA?= =?UTF-8?q?=20(#2654)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/social-media.md | 4 ++++ lib/router.js | 1 + lib/routes/tencent/wechat/ershcimi.js | 27 +++++++++++++++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 lib/routes/tencent/wechat/ershcimi.js 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, + }; +};