From de8d4a0c0925498511682f07ceb3961827824aed Mon Sep 17 00:00:00 2001 From: SettingDust Date: Sun, 27 Jun 2021 08:04:01 +0800 Subject: [PATCH] feat(route): bilibili route add author and date (#7770) --- lib/routes/bilibili/coin.js | 14 +++++++++----- lib/routes/bilibili/fav.js | 14 +++++++++----- lib/routes/bilibili/userFav.js | 1 + 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/lib/routes/bilibili/coin.js b/lib/routes/bilibili/coin.js index 43929dd42..e33ea0e91 100644 --- a/lib/routes/bilibili/coin.js +++ b/lib/routes/bilibili/coin.js @@ -1,6 +1,7 @@ const got = require('@/utils/got'); const cache = require('./cache'); const utils = require('./utils'); +const { parseDate } = require('@/utils/parse-date'); module.exports = async (ctx) => { const uid = ctx.params.uid; @@ -9,13 +10,15 @@ module.exports = async (ctx) => { const name = await cache.getUsernameFromUID(ctx, uid); const response = await got({ - method: 'get', - url: `https://api.bilibili.com/x/space/coin/video?vmid=${uid}&jsonp=jsonp`, + url: `https://api.bilibili.com/x/space/coin/video?vmid=${uid}`, headers: { Referer: `https://space.bilibili.com/${uid}/`, }, }); - const data = response.data.data; + const { data, code, message } = response.data; + if (code) { + throw new Error(message ? message : code); + } ctx.state.data = { title: `${name} 的 bilibili 投币视频`, @@ -23,9 +26,10 @@ module.exports = async (ctx) => { description: `${name} 的 bilibili 投币视频`, item: data.map((item) => ({ title: item.title, - description: `${item.desc}${!disableEmbed ? `

${utils.iframe(item.aid)}` : ''}
`, - pubDate: new Date(item.time * 1000).toUTCString(), + description: `${item.desc}${!disableEmbed ? `

${utils.iframe(item.aid)}` : ''}
`, + pubDate: parseDate(item.time * 1000), link: item.time > utils.bvidTime && item.bvid ? `https://www.bilibili.com/video/${item.bvid}` : `https://www.bilibili.com/video/av${item.aid}`, + author: item.owner.name, })), }; }; diff --git a/lib/routes/bilibili/fav.js b/lib/routes/bilibili/fav.js index f208751be..01282fb79 100644 --- a/lib/routes/bilibili/fav.js +++ b/lib/routes/bilibili/fav.js @@ -1,5 +1,6 @@ const got = require('@/utils/got'); const utils = require('./utils'); +const { parseDate } = require('@/utils/parse-date'); module.exports = async (ctx) => { const fid = ctx.params.fid; @@ -7,13 +8,16 @@ module.exports = async (ctx) => { const disableEmbed = ctx.params.disableEmbed; const response = await got({ - method: 'get', - url: `https://api.bilibili.com/medialist/gateway/base/spaceDetail?media_id=${fid}&pn=1&ps=20&keyword=&order=mtime&type=0&tid=0`, + url: `https://api.bilibili.com/x/v3/fav/resource/list?media_id=${fid}&ps=20`, headers: { Referer: `https://space.bilibili.com/${uid}/`, }, }); - const data = response.data.data; + const { data, code, message } = response.data; + if (code) { + throw new Error(message ? message : code); + } + const userName = data.info.upper.name; const favName = data.info.title; @@ -26,8 +30,8 @@ module.exports = async (ctx) => { data.medias && data.medias.map((item) => ({ title: item.title, - description: `${item.intro}${!disableEmbed ? `

${utils.iframe(item.id)}` : ''}
`, - pubDate: new Date(item.fav_time * 1000).toUTCString(), + description: `${item.intro}${!disableEmbed ? `

${utils.iframe(item.id)}` : ''}
`, + pubDate: parseDate(item.fav_time * 1000), link: item.fav_time > utils.bvidTime && item.bvid ? `https://www.bilibili.com/video/${item.bvid}` : `https://www.bilibili.com/video/av${item.id}`, author: item.upper.name, })), diff --git a/lib/routes/bilibili/userFav.js b/lib/routes/bilibili/userFav.js index 43d1998d5..029a1ee7f 100644 --- a/lib/routes/bilibili/userFav.js +++ b/lib/routes/bilibili/userFav.js @@ -29,6 +29,7 @@ module.exports = async (ctx) => { description: `${item.desc}${!disableEmbed ? `

${utils.iframe(item.aid)}` : ''}
`, pubDate: new Date(item.fav_at * 1000).toUTCString(), link: item.fav_at > utils.bvidTime && item.bvid ? `https://www.bilibili.com/video/${item.bvid}` : `https://www.bilibili.com/video/av${item.aid}`, + author: item.owner.name, })), }; };