From 7f855fe36389176cf7c8017dda5c03a28372524f Mon Sep 17 00:00:00 2001 From: WenryXu Date: Mon, 30 Dec 2019 11:40:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=20PMCAFF=20=E4=BA=92?= =?UTF-8?q?=E8=81=94=E7=BD=91=E4=BA=A7=E5=93=81=E7=A4=BE=E5=8C=BA=20-=20?= =?UTF-8?q?=E7=A4=BE=E5=8C=BA=20(#3607)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/new-media.md | 8 ++++++ lib/router.js | 1 + lib/routes/pmcaff/feed.js | 51 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 lib/routes/pmcaff/feed.js diff --git a/docs/new-media.md b/docs/new-media.md index 0598557580..f2ca47b269 100644 --- a/docs/new-media.md +++ b/docs/new-media.md @@ -151,6 +151,14 @@ pageClass: routes +### 社区 + + + +| 发现 | 待回答 | 最热 | 问答专场 | 投稿 | 深度 | 专栏 | +| ---- | ------ | ---- | -------- | ---- | ---- | ---- | +| 1 | 2 | 3 | 4 | 5 | 6 | 7 | + ## Quanta Magazine ### 全部 diff --git a/lib/router.js b/lib/router.js index 6703b5f147..7168dff736 100644 --- a/lib/router.js +++ b/lib/router.js @@ -1047,6 +1047,7 @@ router.get('/36kr/newsflashes', require('./routes/36kr/newsflashes')); // PMCAFF router.get('/pmcaff/list/:typeid', require('./routes/pmcaff/list')); +router.get('/pmcaff/feed/:typeid', require('./routes/pmcaff/feed')); // icourse163 router.get('/icourse163/newest', require('./routes/icourse163/newest')); diff --git a/lib/routes/pmcaff/feed.js b/lib/routes/pmcaff/feed.js new file mode 100644 index 0000000000..a9a246fd68 --- /dev/null +++ b/lib/routes/pmcaff/feed.js @@ -0,0 +1,51 @@ +const got = require('@/utils/got'); +const map = new Map([ + ['1', { code: '%E5%8F%91%E7%8E%B0', name: '发现' }], + ['2', { code: '%E5%BE%85%E5%9B%9E%E7%AD%94', name: '待回答' }], + ['3', { code: '%E6%9C%80%E7%83%AD', name: '最热' }], + ['4', { code: '%E9%97%AE%E7%AD%94%E4%B8%93%E5%9C%BA', name: '问答专场' }], + ['5', { code: '%E6%8A%95%E7%A8%BF', name: '投稿' }], + ['6', { code: '%E6%B7%B1%E5%BA%A6', name: '深度' }], + ['7', { code: '%E4%B8%93%E6%A0%8F', name: '专栏' }], +]); + +module.exports = async (ctx) => { + const typeid = ctx.params.typeid || '1'; + const type_code = map.get(typeid).code; + const type_name = map.get(typeid).name; + const response = await got({ + method: 'get', + url: `https://api.pmcaff.com/api/v0/communities/feed?page=1&column=${type_code}`, + }); + + const result = []; + response.data.data.map(async (item) => { + const title = item.title; + const guid = item.id; + const pubDate = new Date(item.ctime).toUTCString(); + + let link = ''; + let description = ''; + if (item.entity_type === 'question') { + link = `https://www.pmcaff.com/discuss/index/${guid}/?newwindow=1`; + description = item.content; + } else if (item.entity_type === 'article') { + link = `https://www.pmcaff.com/article/index/${guid}/?newwindow=1`; + description = item.content; + } else { + link = 'https://www.pmcaff.com/feed/'; + description = '不支持的类型'; + } + + const single = { + title: title, + link: link, + guid: guid, + pubDate: pubDate, + description: description, + }; + + result.push(single); + }); + ctx.state.data = { title: `${type_name} - PMCAFF互联网产品社区`, link: 'https://www.pmcaff.com/feed/', description: `PMCAFF互联网产品社区 - 产品经理人气组织::专注于互联网产品研究`, item: result }; +};