fix: bilibili bangumi, close #3374

This commit is contained in:
DIYgod
2019-11-21 18:19:08 +08:00
parent 2cbbac7424
commit 61e0d30bda
+14 -19
View File
@@ -1,36 +1,31 @@
const got = require('@/utils/got');
module.exports = async (ctx) => {
const seasonid = ctx.params.seasonid;
let seasonid = ctx.params.seasonid;
const mediaid = ctx.params.mediaid;
let data;
let mediaData;
if (mediaid) {
const response = await got({
method: 'get',
url: `https://www.bilibili.com/bangumi/media/md${mediaid}`,
});
data = JSON.parse(response.data.match(/window\.__INITIAL_STATE__=([\s\S]+);\(function\(\)/)[1]) || {};
} else if (seasonid) {
const response = await got({
method: 'get',
url: `https://bangumi.bilibili.com/anime/${seasonid}`,
});
data = JSON.parse(response.data.match(/window\.__INITIAL_STATE__=([\s\S]+);\(function\(\)/)[1]) || {};
mediaData = JSON.parse(response.data.match(/window\.__INITIAL_STATE__=([\s\S]+);\(function\(\)/)[1]) || {};
seasonid = mediaData.mediaInfo.season_id;
}
const { data } = await got.get(`https://api.bilibili.com/pgc/web/season/section?season_id=${seasonid}`);
ctx.state.data = {
title: data.mediaInfo.chn_name,
link: `https://www.bilibili.com/bangumi/media/md${data.mediaInfo.media_id}/`,
image: data.mediaInfo.cover,
description: data.mediaInfo.evaluate,
title: mediaData.mediaInfo.chn_name,
link: `https://www.bilibili.com/bangumi/media/md${mediaData.mediaInfo.media_id}/`,
image: mediaData.mediaInfo.cover,
description: mediaData.mediaInfo.evaluate,
item:
data.mediaInfo.episodes &&
data.mediaInfo.episodes.reverse().map((item) => ({
title: `第${item.index}话 ${item.index_title}`,
description: `更新时间:${item.pub_real_time} <img src="${item.cover}@320w_200h">`,
pubDate: new Date(item.pub_real_time).toUTCString(),
link: `https://www.bilibili.com/bangumi/play/ep${item.ep_id}`,
data.result.main_section.episodes &&
data.result.main_section.episodes.map((item, index) => ({
title: `第${index + 1}话 ${item.long_title}`,
description: `<img src="${item.cover}">`,
link: `https://www.bilibili.com/bangumi/play/ep${item.id}`,
})),
};
};