diff --git a/docs/README.md b/docs/README.md index 2ac9e2be4..bd09a6fea 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1498,6 +1498,12 @@ GitHub 官方也提供了一些 RSS: ### 主题-精选 +::: tip 提示 + +部分主题如 `一觉醒来发生了什么: 553870e8e4b0cafb0a1bef68` 提供纯文字内容, 主题-纯文字 jike/topicText 可能会提供更好的体验. + +::: + 举例: 路由: `/jike/topic/:id` @@ -1516,6 +1522,16 @@ GitHub 官方也提供了一些 RSS: - id, 主题 id, 可在即刻 web 端主题页或 APP 分享出来的主题页 URL 中找到 +### 主题-纯文字 + +举例: + +路由: `/jike/topic/text/:id` + +参数: + +- id, 主题 id, 可在即刻 web 端主题页或 APP 分享出来的主题页 URL 中找到 + ### 用户动态 举例: diff --git a/package.json b/package.json index ee2bc3c14..8897c8121 100644 --- a/package.json +++ b/package.json @@ -46,6 +46,7 @@ "co-redis": "2.1.1", "crypto": "1.0.1", "currency-symbol-map": "^4.0.4", + "dayjs": "^1.7.5", "form-data": "^2.3.2", "git-rev-sync": "1.12.0", "googleapis": "33.0.0", diff --git a/router.js b/router.js index 4cdfbcdf0..7aa4b231d 100644 --- a/router.js +++ b/router.js @@ -231,6 +231,7 @@ if (config.youtube && config.youtube.key) { // 即刻 router.get('/jike/topic/:id', require('./routes/jike/topic')); +router.get('/jike/topic/text/:id', require('./routes/jike/topicText')); router.get('/jike/topic/square/:id', require('./routes/jike/topicSquare')); router.get('/jike/user/:id', require('./routes/jike/user')); router.get('/jike/daily', require('./routes/jike/daily')); diff --git a/routes/jike/topicText.js b/routes/jike/topicText.js new file mode 100644 index 000000000..5302062da --- /dev/null +++ b/routes/jike/topicText.js @@ -0,0 +1,38 @@ +const axios = require('../../utils/axios'); +const dayjs = require('dayjs'); + +module.exports = async (ctx) => { + const id = ctx.params.id; + + const response = await axios({ + method: 'post', + url: 'https://app.jike.ruguoapp.com/1.0/messages/history', + headers: { + Referer: `https://m.okjike.com/topics/${id}`, + 'App-Version': '4.1.0', + }, + data: { + loadMoreKey: null, + topic: id, + limit: 5, + }, + }); + + const data = response.data.data; + const title = data[0].topic.content; + + ctx.state.data = { + title: `${title} - 即刻`, + link: `https://web.okjike.com/topic/${id}/official`, + description: `${title} - 即刻`, + item: data.map((item) => { + const date = new Date(item.createdAt); + return { + title: `${title} ${dayjs(date).format('YYYY-MM-DD')}`, + description: item.content.replace(new RegExp('\n', 'g'), '
'), + pubDate: date.toUTCString(), + link: `https://web.okjike.com/message-detail/${item.id}/officialMessage`, + }; + }), + }; +}; diff --git a/yarn.lock b/yarn.lock index 854855600..a1a1c352e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2224,6 +2224,10 @@ date-now@^0.1.4: version "0.1.4" resolved "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" +dayjs@^1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.7.5.tgz#14715cb565d1f8cb556a8531cb14bf1fc33067cc" + de-indent@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"