diff --git a/lib/routes/bilibili/like.js b/lib/routes/bilibili/like.js new file mode 100644 index 000000000..2b628aec4 --- /dev/null +++ b/lib/routes/bilibili/like.js @@ -0,0 +1,35 @@ +import got from '@/utils/got'; +const cache = require('./cache'); +const utils = require('./utils'); +import { parseDate } from '@/utils/parse-date'; + +module.exports = async (ctx) => { + const uid = ctx.req.param('uid'); + const disableEmbed = ctx.req.param('disableEmbed'); + + const name = await cache.getUsernameFromUID(ctx, uid); + + const response = await got({ + url: `https://api.bilibili.com/x/space/like/video?vmid=${uid}`, + headers: { + Referer: `https://space.bilibili.com/${uid}/`, + }, + }); + const { data, code, message } = response.data; + if (code) { + throw new Error(message ?? code); + } + + ctx.set('data', { + title: `${name} 的 bilibili 点赞视频`, + link: `https://space.bilibili.com/${uid}`, + description: `${name} 的 bilibili 点赞视频`, + item: data.list.map((item) => ({ + title: item.title, + description: `${item.desc}${disableEmbed ? '' : `

${utils.iframe(item.aid)}`}
`, + pubDate: parseDate(item.pubdate * 1000), + link: item.pubdate > 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/maintainer.js b/lib/routes/bilibili/maintainer.js index 2cbb05bfe..bfab17167 100644 --- a/lib/routes/bilibili/maintainer.js +++ b/lib/routes/bilibili/maintainer.js @@ -31,6 +31,7 @@ module.exports = { '/user/fav/:uid/:disableEmbed?': ['DIYgod'], '/user/followers/:uid/:loginUid': ['Qixingchen'], '/user/followings/:uid/:loginUid': ['Qixingchen'], + '/user/like/:uid/:disableEmbed?': ['ygguorun'], '/user/video/:uid/:disableEmbed?': ['DIYgod'], '/video/danmaku/:bvid/:pid?': ['Qixingchen'], '/video/page/:bvid/:disableEmbed?': ['sxzz'], diff --git a/lib/routes/bilibili/radar.js b/lib/routes/bilibili/radar.js index 24fa549a6..91df8b0b9 100644 --- a/lib/routes/bilibili/radar.js +++ b/lib/routes/bilibili/radar.js @@ -102,6 +102,12 @@ module.exports = { source: '/:uid', target: '/bilibili/user/coin/:uid', }, + { + title: 'UP 主点赞视频', + docs: 'https://docs.rsshub.app/routes/social-media#bilibili', + source: '/:uid', + target: '/bilibili/user/like/:uid', + }, { title: 'UP 主粉丝', docs: 'https://docs.rsshub.app/routes/social-media#bilibili', diff --git a/lib/routes/bilibili/router.js b/lib/routes/bilibili/router.js index 739d7fa2e..01c61b004 100644 --- a/lib/routes/bilibili/router.js +++ b/lib/routes/bilibili/router.js @@ -31,6 +31,7 @@ export default (router) => { router.get('/user/fav/:uid/:disableEmbed?', './user-fav'); router.get('/user/followers/:uid/:loginUid', './followers'); router.get('/user/followings/:uid/:loginUid', './followings'); + router.get('/user/like/:uid/:disableEmbed?', './like'); router.get('/user/video/:uid/:disableEmbed?', './video'); router.get('/user/video-all/:uid/:disableEmbed?', './video-all'); router.get('/video/danmaku/:bvid/:pid?', './danmaku'); diff --git a/website/docs/routes/social-media.mdx b/website/docs/routes/social-media.mdx index dcfd03b0f..541f207c3 100644 --- a/website/docs/routes/social-media.mdx +++ b/website/docs/routes/social-media.mdx @@ -67,6 +67,10 @@ +### UP 主点赞视频 {#bilibili-up-zhu-dian-zan-shi-pin} + + + ### UP 主粉丝 {#bilibili-up-zhu-fen-si}