From 0d02f04a44e2c74cf8b8038b855a33b19658899d Mon Sep 17 00:00:00 2001 From: ygguorun <36809814+ygguorun@users.noreply.github.com> Date: Sun, 3 Mar 2024 13:56:51 +0800 Subject: [PATCH] =?UTF-8?q?feat(route):=20add=20bilibili=20UP=20=E4=B8=BB?= =?UTF-8?q?=E7=82=B9=E8=B5=9E=E8=A7=86=E9=A2=91=20(#14596)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/routes/bilibili/like.js | 35 ++++++++++++++++++++++++++++ lib/routes/bilibili/maintainer.js | 1 + lib/routes/bilibili/radar.js | 6 +++++ lib/routes/bilibili/router.js | 1 + website/docs/routes/social-media.mdx | 4 ++++ 5 files changed, 47 insertions(+) create mode 100644 lib/routes/bilibili/like.js 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}