diff --git a/routes/jike/topic.js b/routes/jike/topic.js index f343f8cd0..5eff74897 100644 --- a/routes/jike/topic.js +++ b/routes/jike/topic.js @@ -5,52 +5,43 @@ module.exports = async (ctx) => { const id = ctx.params.id; const response = await axios({ - method: 'get', - url: `https://app.jike.ruguoapp.com/1.0/topics/get?id=${id}`, + method: 'post', + url: 'https://app.jike.ruguoapp.com/1.0/messages/history', headers: { 'User-Agent': config.ua, Referer: `https://m.okjike.com/topics/${id}`, 'App-Version': '4.1.0', }, + data: { + loadMoreKey: null, + topic: id, + limit: 20, + }, }); - const data = response.data; + const data = response.data.data; + const topic = data[0].topic; ctx.state.data = { - title: `${data.topic.content} - 即刻主题精选`, + title: `${topic.content} - 即刻主题精选`, link: `https://web.okjike.com/topic/${id}/official`, - description: data.topic.briefIntro, - image: data.topic.pictureUrl, - item: data.messages.map((item) => { + description: topic.content, + image: topic.squarePicture.picUrl || topic.squarePicture.middlePicUrl || topic.squarePicture.thumbnailUrl, + item: data.map((item) => { let contentTemplate = item.content; - if (item.linkUrl) { - contentTemplate = `${item.content}`; - } - if (item.personalUpdate && item.personalUpdate.linkUrl) { - contentTemplate = `${item.content}`; + if (item.linkInfo && (item.linkInfo.originalLinkUrl || item.linkInfo.linkUrl)) { + contentTemplate = `${item.content}`; } let imgTemplate = ''; - item.pictureUrls && - item.pictureUrls.forEach((item) => { - imgTemplate += `
`; - }); - item.personalUpdate && - item.personalUpdate.pictureUrls && - item.personalUpdate.pictureUrls.forEach((item) => { + item.pictures && + item.pictures.forEach((item) => { imgTemplate += `
`; }); - let videoTemplate = ''; - if (item.video) { - videoTemplate = `
视频: `; - } - if (item.personalUpdate && item.personalUpdate.video) { - videoTemplate = `
视频: `; - } return { title: item.content, - description: `${contentTemplate}${imgTemplate}${videoTemplate}`, + description: `${contentTemplate}${imgTemplate}`, pubDate: new Date(item.createdAt).toUTCString(), link: `https://web.okjike.com/message-detail/${item.id}/officialMessage`, }; diff --git a/routes/jike/topicSquare.js b/routes/jike/topicSquare.js index e68a0bc58..35973afeb 100644 --- a/routes/jike/topicSquare.js +++ b/routes/jike/topicSquare.js @@ -4,7 +4,7 @@ const config = require('../../config'); module.exports = async (ctx) => { const id = ctx.params.id; - const itemData = await axios({ + const response = await axios({ method: 'post', url: 'https://app.jike.ruguoapp.com/1.0/squarePosts/list', headers: { @@ -18,33 +18,30 @@ module.exports = async (ctx) => { limit: 20, }, }); - const itemInfo = itemData.data.data; + + const data = response.data.data; + const topic = data[0].topic; ctx.state.data = { - title: `${itemInfo[0].topic.content} - 即刻主题广场`, + title: `${topic.content} - 即刻主题广场`, link: `https://web.okjike.com/topic/${id}/user`, - description: itemInfo[0].topic.content, - image: itemInfo[0].topic.squarePicture.thumbnailUrl, - item: itemInfo.map((item) => { - const user = '用户:' + item.user.screenName; - const contentTemplate = `
${item.content}`; + description: topic.content, + image: topic.squarePicture.picUrl || topic.squarePicture.middlePicUrl || topic.squarePicture.thumbnailUrl, + item: data.map((item) => { + let contentTemplate = item.content; + if (item.linkInfo && (item.linkInfo.originalLinkUrl || item.linkInfo.linkUrl)) { + contentTemplate = `${item.content}`; + } + let imgTemplate = ''; - item.pictures.length > 0 && + item.pictures && item.pictures.forEach((item) => { - imgTemplate += `
`; + imgTemplate += `
`; }); - const videoTemplate = ''; - // 暂时没找到有视频的信息,后续遇到再补充 - // if (item.video) { - // videoTemplate = `
视频: `; - // } - // if (item.personalUpdate && item.personalUpdate.video) { - // videoTemplate = `
视频: `; - // } return { title: item.content, - description: `${user}${contentTemplate}${imgTemplate}${videoTemplate}`, + description: `${item.user.screenName}: ${contentTemplate}${imgTemplate}`, pubDate: new Date(item.createdAt).toUTCString(), link: `https://web.okjike.com/post-detail/${item.id}/originalPost`, };