feat(route): 增加bilibili合集的订阅 (#10470)
* Add files via upload * style: auto format * Add files via upload * Add files via upload * Add files via upload * Add files via upload * style: auto format * 这里是注释 * 更新collections.js为shininome * 增加collection * 修补分号 * 修补括号 我是傻子 * style: auto format Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This commit is contained in:
parent
4877301f23
commit
a627bd6eb6
|
|
@ -340,6 +340,10 @@ Tiny Tiny RSS 会给所有 iframe 元素添加 `sandbox="allow-scripts"` 属性
|
|||
|
||||
</Route>
|
||||
|
||||
### 合集更新
|
||||
|
||||
<Route author="shininome" example="/bilibili/collection/245645656/529166" path="/bilibili/collection/:uid/:sid/:disableEmbed?" :paramsDesc="['用户 id,可在 UP 主主页中找到','合集的id,合集上面有','默认为开启内嵌视频,任意值为关闭']"/>
|
||||
|
||||
## Dev.to
|
||||
|
||||
### 最高职位
|
||||
|
|
|
|||
|
|
@ -0,0 +1,34 @@
|
|||
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;
|
||||
const sid = ctx.params.sid;
|
||||
const disableEmbed = ctx.params.disableEmbed;
|
||||
const [name, face] = await cache.getUsernameAndFaceFromUID(ctx, uid);
|
||||
const response = await got({
|
||||
method: 'get',
|
||||
url: `https://api.bilibili.com/x/polymer/space/seasons_archives_list?mid=${uid}&season_id=${sid}&sort_reverse=false&page_num=1&page_size=30`,
|
||||
headers: {
|
||||
Referer: `https://space.bilibili.com/${uid}/channel/collectiondetail?sid=${sid}`,
|
||||
},
|
||||
});
|
||||
const data = response.data;
|
||||
|
||||
ctx.state.data = {
|
||||
title: `${name}的${data.data.meta.name}`,
|
||||
link: `https://space.bilibili.com/${uid}/channel/collectiondetail?sid=${sid}`,
|
||||
description: `${name} 的 bilibili 合集`,
|
||||
logo: face,
|
||||
icon: face,
|
||||
item: data.data.archives.map((item) => ({
|
||||
title: item.title,
|
||||
description: `${!disableEmbed ? `<br><br>${utils.iframe(item.aid)}` : ''}<br><img src="${item.pic}">`,
|
||||
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: name,
|
||||
})),
|
||||
};
|
||||
};
|
||||
|
|
@ -4,6 +4,7 @@ module.exports = {
|
|||
'/blackboard': ['Qixingchen'],
|
||||
'/bangumi/:seasonid': ['DIYgod'],
|
||||
'/bangumi/media/:mediaid': ['DIYgod'],
|
||||
'/collection/:uid/:sid/:disableEmbed?': ['shininome'],
|
||||
'/fav/:uid/:fid/:disableEmbed?': ['Qixingchen'],
|
||||
'/followings/article/:uid': ['woshiluo'],
|
||||
'/followings/dynamic/:uid/:disableEmbed?': ['TigerCubDen'],
|
||||
|
|
|
|||
|
|
@ -90,6 +90,15 @@ module.exports = {
|
|||
source: '/:uid',
|
||||
target: '/bilibili/user/bangumi/:uid',
|
||||
},
|
||||
{
|
||||
title: '当前合集',
|
||||
docs: 'https://docs.rsshub.app/social-media.html#bilibili',
|
||||
source: '/:uid/channel/collectiondetail',
|
||||
target: (params, url) => {
|
||||
const sid = new URL(url).searchParams.get('sid');
|
||||
return `/bilibili/collection/:uid/${sid}`;
|
||||
},
|
||||
},
|
||||
],
|
||||
manga: [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ module.exports = (router) => {
|
|||
router.get('/blackboard', require('./blackboard'));
|
||||
router.get('/bangumi/:seasonid', require('./bangumi')); // 弃用
|
||||
router.get('/bangumi/media/:mediaid', require('./bangumi'));
|
||||
router.get('/collection/:uid/:sid/:disableEmbed?', require('./collection'));
|
||||
router.get('/fav/:uid/:fid/:disableEmbed?', require('./fav'));
|
||||
router.get('/followings/article/:uid', require('./followings_article'));
|
||||
router.get('/followings/dynamic/:uid/:disableEmbed?', require('./followings_dynamic'));
|
||||
|
|
|
|||
Loading…
Reference in New Issue