From 5ba92d6b336e91d9e883816923df72c5a7835bcf Mon Sep 17 00:00:00 2001 From: p7e4 <44750087+p7e4@users.noreply.github.com> Date: Fri, 14 Jul 2023 22:40:14 +0800 Subject: [PATCH] =?UTF-8?q?feat(route):=20add=20=E7=81=AB=E7=BA=BF=20(#127?= =?UTF-8?q?84)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(route): add 火线 * fix pr * fix pr again * fix pr again and again. --- docs/bbs.md | 6 ++++++ lib/v2/huoxian/maintainer.js | 3 +++ lib/v2/huoxian/radar.js | 11 +++++++++++ lib/v2/huoxian/router.js | 3 +++ lib/v2/huoxian/zone.js | 19 +++++++++++++++++++ 5 files changed, 42 insertions(+) create mode 100644 lib/v2/huoxian/maintainer.js create mode 100644 lib/v2/huoxian/radar.js create mode 100644 lib/v2/huoxian/router.js create mode 100644 lib/v2/huoxian/zone.js diff --git a/docs/bbs.md b/docs/bbs.md index 631aaa0e2..26bbdaed9 100644 --- a/docs/bbs.md +++ b/docs/bbs.md @@ -673,6 +673,12 @@ pageClass: routes +## 火线 + +### Zone + + + ## 集思录 ### 广场 diff --git a/lib/v2/huoxian/maintainer.js b/lib/v2/huoxian/maintainer.js new file mode 100644 index 000000000..862efe52f --- /dev/null +++ b/lib/v2/huoxian/maintainer.js @@ -0,0 +1,3 @@ +module.exports = { + '/zone': ['p7e4'], +}; diff --git a/lib/v2/huoxian/radar.js b/lib/v2/huoxian/radar.js new file mode 100644 index 000000000..2c9218585 --- /dev/null +++ b/lib/v2/huoxian/radar.js @@ -0,0 +1,11 @@ +module.exports = { + 'huoxian.cn': { + _name: '火线', + zone: [ + { + title: 'Zone', + docs: 'https://docs.rsshub.app/bbs.html#huo-xian', + }, + ], + }, +}; diff --git a/lib/v2/huoxian/router.js b/lib/v2/huoxian/router.js new file mode 100644 index 000000000..da6f81bf0 --- /dev/null +++ b/lib/v2/huoxian/router.js @@ -0,0 +1,3 @@ +module.exports = (router) => { + router.get('/zone', require('./zone')); +}; diff --git a/lib/v2/huoxian/zone.js b/lib/v2/huoxian/zone.js new file mode 100644 index 000000000..3ecd56a65 --- /dev/null +++ b/lib/v2/huoxian/zone.js @@ -0,0 +1,19 @@ +const got = require('@/utils/got'); +const { parseDate } = require('@/utils/parse-date'); + +module.exports = async (ctx) => { + const { data } = await got('https://zone.huoxian.cn/api/discussions?sort=-createdAt'); + const items = data.data.map((item) => ({ + title: item.attributes.title, + link: `https://zone.huoxian.cn/d/${item.attributes.slug}`, + description: data.included.find((i) => i.id === item.relationships.firstPost.data.id).attributes.contentHtml, + pubDate: parseDate(item.attributes.createdAt), + author: data.included.find((i) => i.id === item.relationships.user.data.id).attributes.displayName, + category: data.included.filter((i) => item.relationships.tags.data.map((t) => t.id).includes(i.id) && i.type === 'tags').map((i) => i.attributes.name), + })); + ctx.state.data = { + title: '火线 Zone-安全攻防社区', + link: 'https://zone.huoxian.cn/', + item: items, + }; +};