diff --git a/docs/new-media.md b/docs/new-media.md index 84eb365a7..1a782a9fa 100644 --- a/docs/new-media.md +++ b/docs/new-media.md @@ -661,6 +661,17 @@ IPFS 网关有可能失效,那时候换成其他网关。 +## MyGoPen + +### 分類 + + + +| 謠言 | 詐騙 | 真實資訊 | 教學 | +| ---- | ---- | -------- | ---- | + + + ## Nautilus ### 话题 diff --git a/lib/v2/mygopen/index.js b/lib/v2/mygopen/index.js new file mode 100644 index 000000000..de05986a1 --- /dev/null +++ b/lib/v2/mygopen/index.js @@ -0,0 +1,29 @@ +const got = require('@/utils/got'); +const { parseDate } = require('@/utils/parse-date'); + +module.exports = async (ctx) => { + const label = ctx.params.label ?? ''; + + const rootUrl = 'https://www.mygopen.com'; + const currentUrl = `${rootUrl}${label ? `/search/label/${label}` : ''}`; + const apiUrl = `${rootUrl}/feeds/posts/default${label ? `/-/${label}` : ''}?alt=json-in-script&max-results=${ctx.query.limit ? parseInt(ctx.query.limit) : 50}`; + + const response = await got({ + method: 'get', + url: apiUrl, + }); + + const items = JSON.parse(response.data.match(/gdata\.io\.handleScriptLoaded\((.*)\);/)[1]).feed.entry.map((item) => ({ + title: item.title.$t, + description: item.content.$t, + pubDate: parseDate(item.published.$t), + link: item.link.pop().href, + })); + + ctx.state.data = { + title: `MyGoPen${label ? `: ${label}` : ''}`, + link: currentUrl, + item: items, + description: '詐騙與謠言頻傳的年代,「MyGoPen|這是假消息」提醒網路使用者隨時要用謹慎懷疑的態度面對網路上的消息。', + }; +}; diff --git a/lib/v2/mygopen/maintainer.js b/lib/v2/mygopen/maintainer.js new file mode 100644 index 000000000..875b0e8e5 --- /dev/null +++ b/lib/v2/mygopen/maintainer.js @@ -0,0 +1,3 @@ +module.exports = { + '/:label?': ['nczitzk'], +}; diff --git a/lib/v2/mygopen/radar.js b/lib/v2/mygopen/radar.js new file mode 100644 index 000000000..d8522761e --- /dev/null +++ b/lib/v2/mygopen/radar.js @@ -0,0 +1,13 @@ +module.exports = { + 'mygopen.com': { + _name: 'MyGoPen', + '.': [ + { + title: '分類', + docs: 'https://docs.rsshub.app/new-media.html#mygopen-fen-lei', + source: ['/search/label/:label', '/'], + target: '/mygopen/:label?', + }, + ], + }, +}; diff --git a/lib/v2/mygopen/router.js b/lib/v2/mygopen/router.js new file mode 100644 index 000000000..36ca7a60c --- /dev/null +++ b/lib/v2/mygopen/router.js @@ -0,0 +1,3 @@ +module.exports = function (router) { + router.get('/:label?', require('./index')); +};