From 1ed857ef16a2c1eb1c1d58f6e56b21f1fdaecc4c Mon Sep 17 00:00:00 2001 From: Hyoban Date: Wed, 22 Jun 2022 01:03:12 +0800 Subject: [PATCH] =?UTF-8?q?feat(route):=20hackertalk=20=E9=BB=91=E5=AE=A2?= =?UTF-8?q?=E8=AF=B4=20=E6=9C=80=E6=96=B0=E5=B8=96=E5=AD=90=20(#9999)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(route): hackertalk 黑客说 最新帖子 * fix: about Parameters Limit Entries * Update docs/bbs.md --- docs/bbs.md | 6 ++++++ lib/v2/hackertalk/index.js | 23 +++++++++++++++++++++++ lib/v2/hackertalk/maintainer.js | 3 +++ lib/v2/hackertalk/radar.js | 13 +++++++++++++ lib/v2/hackertalk/router.js | 3 +++ 5 files changed, 48 insertions(+) create mode 100644 lib/v2/hackertalk/index.js create mode 100644 lib/v2/hackertalk/maintainer.js create mode 100644 lib/v2/hackertalk/radar.js create mode 100644 lib/v2/hackertalk/router.js diff --git a/docs/bbs.md b/docs/bbs.md index 46cae0b359..5a6f8d1a5c 100644 --- a/docs/bbs.md +++ b/docs/bbs.md @@ -218,6 +218,12 @@ pageClass: routes +## HACKER TALK 黑客说 + +### 最新帖子 + + + ## LearnKu ### 社区 diff --git a/lib/v2/hackertalk/index.js b/lib/v2/hackertalk/index.js new file mode 100644 index 0000000000..56c7906bd9 --- /dev/null +++ b/lib/v2/hackertalk/index.js @@ -0,0 +1,23 @@ +const got = require('@/utils/got'); +const md = require('markdown-it')(); +const { parseDate } = require('@/utils/parse-date'); + +module.exports = async (ctx) => { + const limit = ctx.query.limit ?? 25; + + const response = await got(`https://api.hackertalk.net/v1/posts?limit=${limit}&orderBy=time`); + + const data = response.data.data; + + ctx.state.data = { + title: '黑客说的最新帖子', + link: 'https://hackertalk.net/?tab=new', + description: '黑客说 - 技术驱动优质交流', + item: data.map((item) => ({ + title: item.title, + description: md.render(item.content), + pubDate: parseDate(item.createdAt), + link: `https://hackertalk.net/posts/${item.id}`, + })), + }; +}; diff --git a/lib/v2/hackertalk/maintainer.js b/lib/v2/hackertalk/maintainer.js new file mode 100644 index 0000000000..6077052813 --- /dev/null +++ b/lib/v2/hackertalk/maintainer.js @@ -0,0 +1,3 @@ +module.exports = { + '/': ['hyoban'], +}; diff --git a/lib/v2/hackertalk/radar.js b/lib/v2/hackertalk/radar.js new file mode 100644 index 0000000000..5720927d22 --- /dev/null +++ b/lib/v2/hackertalk/radar.js @@ -0,0 +1,13 @@ +module.exports = { + 'hackertalk.net': { + _name: 'Hacker Talk 黑客说', + '.': [ + { + title: '最新的帖子', + docs: 'https://docs.rsshub.app/bbs.html#hacker-talk-hei-ke-shuo', + source: ['/?tab=new', '/'], + target: '/hackertalk', + }, + ], + }, +}; diff --git a/lib/v2/hackertalk/router.js b/lib/v2/hackertalk/router.js new file mode 100644 index 0000000000..20c52b09d7 --- /dev/null +++ b/lib/v2/hackertalk/router.js @@ -0,0 +1,3 @@ +module.exports = function (router) { + router.get('/', require('./index')); +};