rss: fix jike api

This commit is contained in:
DIYgod 2018-05-23 15:12:21 +08:00
parent ead78bbd89
commit 15f6c37064
No known key found for this signature in database
GPG Key ID: EC0B76A252D3EF67
2 changed files with 34 additions and 46 deletions

View File

@ -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 = `<a href="${item.linkUrl}">${item.content}</a>`;
}
if (item.personalUpdate && item.personalUpdate.linkUrl) {
contentTemplate = `<a href="${item.personalUpdate.linkUrl}">${item.content}</a>`;
if (item.linkInfo && (item.linkInfo.originalLinkUrl || item.linkInfo.linkUrl)) {
contentTemplate = `<a href="${item.linkInfo.originalLinkUrl || item.linkInfo.linkUrl}">${item.content}</a>`;
}
let imgTemplate = '';
item.pictureUrls &&
item.pictureUrls.forEach((item) => {
imgTemplate += `<br><img referrerpolicy="no-referrer" src="${item.picUrl}">`;
});
item.personalUpdate &&
item.personalUpdate.pictureUrls &&
item.personalUpdate.pictureUrls.forEach((item) => {
item.pictures &&
item.pictures.forEach((item) => {
imgTemplate += `<br><img referrerpolicy="no-referrer" src="${item.picUrl}">`;
});
let videoTemplate = '';
if (item.video) {
videoTemplate = `<br>视频: <img referrerpolicy="no-referrer" src="${item.video.image.picUrl}">`;
}
if (item.personalUpdate && item.personalUpdate.video) {
videoTemplate = `<br>视频: <img referrerpolicy="no-referrer" src="${item.personalUpdate.video.image.picUrl}">`;
}
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`,
};

View File

@ -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 = `<br> ${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 = `<a href="${item.linkInfo.originalLinkUrl || item.linkInfo.linkUrl}">${item.content}</a>`;
}
let imgTemplate = '';
item.pictures.length > 0 &&
item.pictures &&
item.pictures.forEach((item) => {
imgTemplate += `<br><img referrerpolicy="no-referrer" src="${item.middlePicUrl}">`;
imgTemplate += `<br><img referrerpolicy="no-referrer" src="${item.picUrl}">`;
});
const videoTemplate = '';
// 暂时没找到有视频的信息,后续遇到再补充
// if (item.video) {
// videoTemplate = `<br>视频: <img referrerpolicy="no-referrer" src="${item.video.image.picUrl}">`;
// }
// if (item.personalUpdate && item.personalUpdate.video) {
// videoTemplate = `<br>视频: <img referrerpolicy="no-referrer" src="${item.personalUpdate.video.image.picUrl}">`;
// }
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`,
};