diff --git a/docs/social-media.md b/docs/social-media.md
index 43ffda8fd..60e102936 100644
--- a/docs/social-media.md
+++ b/docs/social-media.md
@@ -16,7 +16,7 @@ pageClass: routes
### UP 主投稿
-
+
### UP 主专栏
@@ -24,23 +24,23 @@ pageClass: routes
### UP 主动态
-
+
### UP 主频道
-
+
### UP 主默认收藏夹
-
+
### UP 主非默认收藏夹
-
+
### UP 主投币视频
-
+
### UP 主粉丝
@@ -52,7 +52,7 @@ pageClass: routes
### 分区视频
-
+
动画
@@ -154,11 +154,11 @@ pageClass: routes
### 分区视频排行榜
-
+
### 视频选集列表
-
+
### 视频评论
@@ -174,11 +174,11 @@ pageClass: routes
### 视频搜索
-
+
### 用户关注视频动态
-
+
::: warning 注意
用户动态需要 b 站登录后的 Cookie 值,所以只能自建,详情见部署页面的配置模块。
@@ -222,7 +222,7 @@ pageClass: routes
### 排行榜
-
+
| 全站 | 动画 | 国创相关 | 音乐 | 舞蹈 | 游戏 | 科技 | 生活 | 鬼畜 | 时尚 | 娱乐 | 影视 |
| ---- | ---- | -------- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
@@ -384,15 +384,15 @@ pageClass: routes
### 用户
-
+
### 频道
-
+
### 播放列表
-
+
## 币乎
diff --git a/lib/router.js b/lib/router.js
index 21694c475..8e5b9d4f1 100644
--- a/lib/router.js
+++ b/lib/router.js
@@ -34,35 +34,35 @@ router.get('/1draw/', require('./routes/1draw/index'));
router.get('/1x/magazine', require('./routes/1x/magazine'));
// bilibili
-router.get('/bilibili/user/video/:uid', require('./routes/bilibili/video'));
+router.get('/bilibili/user/video/:uid/:disableEmbed?', require('./routes/bilibili/video'));
router.get('/bilibili/user/article/:uid', require('./routes/bilibili/article'));
-router.get('/bilibili/user/fav/:uid', require('./routes/bilibili/userFav'));
-router.get('/bilibili/user/coin/:uid', require('./routes/bilibili/coin'));
-router.get('/bilibili/user/dynamic/:uid', require('./routes/bilibili/dynamic'));
+router.get('/bilibili/user/fav/:uid/:disableEmbed?', require('./routes/bilibili/userFav'));
+router.get('/bilibili/user/coin/:uid/:disableEmbed?', require('./routes/bilibili/coin'));
+router.get('/bilibili/user/dynamic/:uid/:disableEmbed?', require('./routes/bilibili/dynamic'));
router.get('/bilibili/user/followers/:uid', require('./routes/bilibili/followers'));
router.get('/bilibili/user/followings/:uid', require('./routes/bilibili/followings'));
router.get('/bilibili/user/bangumi/:uid', require('./routes/bilibili/user_bangumi'));
-router.get('/bilibili/partion/:tid', require('./routes/bilibili/partion'));
-router.get('/bilibili/partion/ranking/:tid/:days?', require('./routes/bilibili/partion-ranking'));
+router.get('/bilibili/partion/:tid/:disableEmbed?', require('./routes/bilibili/partion'));
+router.get('/bilibili/partion/ranking/:tid/:days?/:disableEmbed?', require('./routes/bilibili/partion-ranking'));
router.get('/bilibili/bangumi/:seasonid', require('./routes/bilibili/bangumi')); // 弃用
router.get('/bilibili/bangumi/media/:mediaid', require('./routes/bilibili/bangumi'));
-router.get('/bilibili/video/page/:aid', require('./routes/bilibili/page'));
+router.get('/bilibili/video/page/:aid/:disableEmbed?', require('./routes/bilibili/page'));
router.get('/bilibili/video/reply/:aid', require('./routes/bilibili/reply'));
router.get('/bilibili/video/danmaku/:aid/:pid?', require('./routes/bilibili/danmaku'));
router.get('/bilibili/link/news/:product', require('./routes/bilibili/linkNews'));
router.get('/bilibili/live/room/:roomID', require('./routes/bilibili/liveRoom'));
router.get('/bilibili/live/search/:key/:order', require('./routes/bilibili/liveSearch'));
router.get('/bilibili/live/area/:areaID/:order', require('./routes/bilibili/liveArea'));
-router.get('/bilibili/fav/:uid/:fid', require('./routes/bilibili/fav'));
+router.get('/bilibili/fav/:uid/:fid/:disableEmbed?', require('./routes/bilibili/fav'));
router.get('/bilibili/blackboard', require('./routes/bilibili/blackboard'));
router.get('/bilibili/mall/new', require('./routes/bilibili/mallNew'));
router.get('/bilibili/mall/ip/:id', require('./routes/bilibili/mallIP'));
-router.get('/bilibili/ranking/:rid?/:day?/:arc_type?', require('./routes/bilibili/ranking'));
-router.get('/bilibili/user/channel/:uid/:cid', require('./routes/bilibili/userChannel'));
+router.get('/bilibili/ranking/:rid?/:day?/:arc_type?/:disableEmbed?', require('./routes/bilibili/ranking'));
+router.get('/bilibili/user/channel/:uid/:cid/:disableEmbed?', require('./routes/bilibili/userChannel'));
router.get('/bilibili/topic/:topic', require('./routes/bilibili/topic'));
router.get('/bilibili/audio/:id', require('./routes/bilibili/audio'));
-router.get('/bilibili/vsearch/:kw/:order?', require('./routes/bilibili/vsearch'));
-router.get('/bilibili/followings/video/:uid', require('./routes/bilibili/followings_video'));
+router.get('/bilibili/vsearch/:kw/:order?/:disableEmbed?', require('./routes/bilibili/vsearch'));
+router.get('/bilibili/followings/video/:uid/:disableEmbed?', require('./routes/bilibili/followings_video'));
router.get('/bilibili/followings/article/:uid', require('./routes/bilibili/followings_article'));
router.get('/bilibili/readlist/:listid', require('./routes/bilibili/readlist'));
diff --git a/lib/routes/bilibili/coin.js b/lib/routes/bilibili/coin.js
index 4655a9cda..dcebd4ca7 100644
--- a/lib/routes/bilibili/coin.js
+++ b/lib/routes/bilibili/coin.js
@@ -1,8 +1,10 @@
const got = require('@/utils/got');
const cache = require('./cache');
+const utils = require('./utils');
module.exports = async (ctx) => {
const uid = ctx.params.uid;
+ const disableEmbed = ctx.params.disableEmbed;
const name = await cache.getUsernameFromUID(ctx, uid);
@@ -21,7 +23,7 @@ module.exports = async (ctx) => {
description: `${name} 的 bilibili 投币视频`,
item: data.map((item) => ({
title: item.title,
- description: `${item.desc}
`,
+ description: `${item.desc}${!disableEmbed ? `
${utils.iframe(item.aid)}` : ''}
`,
pubDate: new Date(item.time * 1000).toUTCString(),
link: `https://www.bilibili.com/video/av${item.aid}`,
})),
diff --git a/lib/routes/bilibili/dynamic.js b/lib/routes/bilibili/dynamic.js
index 32cf067ce..79afa3886 100644
--- a/lib/routes/bilibili/dynamic.js
+++ b/lib/routes/bilibili/dynamic.js
@@ -1,8 +1,10 @@
const got = require('@/utils/got');
const JSONbig = require('json-bigint');
+const utils = require('./utils');
module.exports = async (ctx) => {
const uid = ctx.params.uid;
+ const disableEmbed = ctx.params.disableEmbed;
const response = await got({
method: 'get',
@@ -46,7 +48,9 @@ module.exports = async (ctx) => {
return {
title: data.title || data.description || data.content || (data.vest && data.vest.content),
- description: `${getDes(data)}${origin ? `
转发自: @${(origin.user && origin.user.uname) || (origin.owner && origin.owner.name)}: ${getDes(origin.item || origin)}` : ''}${imgHTML} `,
+ description: `${getDes(data)}${origin ? `
转发自: @${(origin.user && origin.user.uname) || (origin.owner && origin.owner.name)}: ${getDes(origin.item || origin)}` : ''}${
+ !disableEmbed && data.aid ? `
${utils.iframe(data.aid)}
` : ''
+ }
${imgHTML} `,
pubDate: new Date(item.desc.timestamp * 1000).toUTCString(),
link: link,
};
diff --git a/lib/routes/bilibili/fav.js b/lib/routes/bilibili/fav.js
index af7b02bc0..3c3b9456b 100644
--- a/lib/routes/bilibili/fav.js
+++ b/lib/routes/bilibili/fav.js
@@ -1,8 +1,10 @@
const got = require('@/utils/got');
+const utils = require('./utils');
module.exports = async (ctx) => {
const fid = ctx.params.fid;
const uid = ctx.params.uid;
+ const disableEmbed = ctx.params.disableEmbed;
const response = await got({
method: 'get',
@@ -25,9 +27,9 @@ module.exports = async (ctx) => {
data.medias &&
data.medias.map((item) => ({
title: item.title,
- description: `${item.intro}`,
+ description: `${item.intro}${!disableEmbed ? `
${utils.iframe(item.id)}` : ''}`,
pubDate: new Date(item.fav_time * 1000).toUTCString(),
- link: `https://www.bilibili.com/${item.link.replace('bilibili://video/', 'video/av')}`,
+ link: `https://www.bilibili.com/video/av${item.id}`,
})),
};
};
diff --git a/lib/routes/bilibili/followings_video.js b/lib/routes/bilibili/followings_video.js
index 87b72322b..09465f028 100644
--- a/lib/routes/bilibili/followings_video.js
+++ b/lib/routes/bilibili/followings_video.js
@@ -1,9 +1,11 @@
const got = require('@/utils/got');
const cache = require('./cache');
const config = require('@/config').value;
+const utils = require('./utils');
module.exports = async (ctx) => {
const uid = String(ctx.params.uid);
+ const disableEmbed = ctx.params.disableEmbed;
const name = await cache.getUsernameFromUID(ctx, uid);
const cookie = config.bilibili.cookies[uid];
@@ -27,7 +29,7 @@ module.exports = async (ctx) => {
const item = {
title: card_data.title,
- description: `${card_data.desc}
`,
+ description: `${card_data.desc}${!disableEmbed ? `
${utils.iframe(item.aid)}` : ''}
`,
pubDate: new Date(card_data.pubdate * 1000).toUTCString(),
link: `https://www.bilibili.com/video/av${card_data.aid}`,
author: card.desc.user_profile.info.uname,
diff --git a/lib/routes/bilibili/page.js b/lib/routes/bilibili/page.js
index 21441efa6..4cb4027b5 100644
--- a/lib/routes/bilibili/page.js
+++ b/lib/routes/bilibili/page.js
@@ -1,7 +1,9 @@
const got = require('@/utils/got');
+const utils = require('./utils');
module.exports = async (ctx) => {
const aid = ctx.params.aid;
+ const disableEmbed = ctx.params.disableEmbed;
const response = await got({
method: 'get',
url: `https://api.bilibili.com/x/web-interface/view?aid=${aid}`,
@@ -18,7 +20,7 @@ module.exports = async (ctx) => {
description: `视频 ${name} 的视频选集列表`,
item: data.map((item) => ({
title: item.part,
- description: `${item.part} - ${name}`,
+ description: `${item.part} - ${name}${!disableEmbed ? `
${utils.iframe(aid, item.page)}` : ''}`,
pubDate: new Date().toUTCString(),
link: `https://www.bilibili.com/video/av${aid}?p=${item.page}`,
})),
diff --git a/lib/routes/bilibili/partion-ranking.js b/lib/routes/bilibili/partion-ranking.js
index 3c42eb2c0..5c6b65452 100644
--- a/lib/routes/bilibili/partion-ranking.js
+++ b/lib/routes/bilibili/partion-ranking.js
@@ -1,4 +1,5 @@
const got = require('@/utils/got');
+const utils = require('./utils');
const got_ins = got.extend({
headers: {
Referer: 'https://www.bilibili.com/',
@@ -16,6 +17,7 @@ function formatDate(now) {
module.exports = async (ctx) => {
const tid = ctx.params.tid;
const days = ctx.params.days ? ctx.params.days : 7;
+ const disableEmbed = ctx.params.disableEmbed;
const responseApi = `https://api.bilibili.com/x/web-interface/newlist?ps=15&rid=${tid}&_=${+new Date()}`;
@@ -40,7 +42,7 @@ module.exports = async (ctx) => {
item = {
title: `${item.title}`,
- description: `${item.description}
Tags:${item.tag}`,
+ description: `${item.description}${!disableEmbed ? `
${utils.iframe(item.id)}` : ''}

Tags:${item.tag}`,
pubDate: new Date(item.pubdate).toUTCString(),
link: `https://www.bilibili.com/video/av${item.id}`,
author: item.author,
diff --git a/lib/routes/bilibili/partion.js b/lib/routes/bilibili/partion.js
index 58a2c325b..1d13157a5 100644
--- a/lib/routes/bilibili/partion.js
+++ b/lib/routes/bilibili/partion.js
@@ -1,7 +1,9 @@
const got = require('@/utils/got');
+const utils = require('./utils');
module.exports = async (ctx) => {
const tid = ctx.params.tid;
+ const disableEmbed = ctx.params.disableEmbed;
const response = await got({
method: 'get',
@@ -25,7 +27,7 @@ module.exports = async (ctx) => {
list &&
list.map((item) => ({
title: `${item.title}`,
- description: `${item.desc}
`,
+ description: `${item.desc}${!disableEmbed ? `
${utils.iframe(item.aid)}` : ''}
`,
pubDate: new Date(item.pubdate * 1000).toUTCString(),
link: `https://www.bilibili.com/video/av${item.aid}`,
author: item.owner.name,
diff --git a/lib/routes/bilibili/ranking.js b/lib/routes/bilibili/ranking.js
index 7a0c070a4..ebd81cdcb 100644
--- a/lib/routes/bilibili/ranking.js
+++ b/lib/routes/bilibili/ranking.js
@@ -1,9 +1,11 @@
const got = require('@/utils/got');
+const utils = require('./utils');
module.exports = async (ctx) => {
const rid = ctx.params.rid || '0';
const day = ctx.params.day || '3';
const arc_type = ctx.params.arc_type || '1';
+ const disableEmbed = ctx.params.disableEmbed;
const arc_type1 = arc_type === '0' ? '全部投稿' : '近期投稿';
const rid_1 = ['0', '1', '168', '3', '129', '4', '36', '160', '119', '155', '5', '181'];
const rid_2 = ['全站', '动画', '国创相关', '音乐', '舞蹈', '游戏', '科技', '生活', '鬼畜', '时尚', '娱乐', '影视'];
@@ -40,7 +42,7 @@ module.exports = async (ctx) => {
if (data) {
return {
title: data.title,
- description: `${data.desc}
`,
+ description: `${data.desc}${!disableEmbed ? `
${utils.iframe(aid)}` : ''}
`,
pubDate: new Date(data.pubdate * 1000).toUTCString(),
author: data.owner.name,
link: `https://www.bilibili.com/video/av${aid}`,
diff --git a/lib/routes/bilibili/userChannel.js b/lib/routes/bilibili/userChannel.js
index bd64a5484..1089c3899 100644
--- a/lib/routes/bilibili/userChannel.js
+++ b/lib/routes/bilibili/userChannel.js
@@ -1,9 +1,11 @@
const got = require('@/utils/got');
const cache = require('./cache');
+const utils = require('./utils');
module.exports = async (ctx) => {
const cid = ctx.params.cid;
const uid = ctx.params.uid;
+ const disableEmbed = ctx.params.disableEmbed;
const userName = await cache.getUsernameFromUID(ctx, uid);
const host = `https://api.bilibili.com/x/space/channel/video?mid=${uid}&cid=${cid}&pn=1&ps=10&order=0`;
@@ -34,7 +36,7 @@ module.exports = async (ctx) => {
item: data.archives.map((item) => ({
title: item.title,
- description: `${item.desc}
`,
+ description: `${item.desc}${!disableEmbed ? `
${utils.iframe(item.aid)}` : ''}
`,
pubDate: new Date(item.pubdate * 1000).toUTCString(),
link: `https://www.bilibili.com/video/av${item.aid}`,
author: userName,
diff --git a/lib/routes/bilibili/userFav.js b/lib/routes/bilibili/userFav.js
index 13e409b0f..9e07152a4 100644
--- a/lib/routes/bilibili/userFav.js
+++ b/lib/routes/bilibili/userFav.js
@@ -1,8 +1,10 @@
const got = require('@/utils/got');
const cache = require('./cache');
+const utils = require('./utils');
module.exports = async (ctx) => {
const uid = ctx.params.uid;
+ const disableEmbed = ctx.params.disableEmbed;
const name = await cache.getUsernameFromUID(ctx, uid);
const response = await got({
@@ -24,7 +26,7 @@ module.exports = async (ctx) => {
data.data.archives &&
data.data.archives.map((item) => ({
title: item.title,
- description: `${item.desc}
`,
+ description: `${item.desc}${!disableEmbed ? `
${utils.iframe(item.aid)}` : ''}
`,
pubDate: new Date(item.fav_at * 1000).toUTCString(),
link: `https://www.bilibili.com/video/av${item.aid}`,
})),
diff --git a/lib/routes/bilibili/utils.js b/lib/routes/bilibili/utils.js
index 5c6acaf8a..76585eaed 100644
--- a/lib/routes/bilibili/utils.js
+++ b/lib/routes/bilibili/utils.js
@@ -1,35 +1,6 @@
-const got = require('@/utils/got');
-
-async function load(aid) {
- const response = await got({
- method: 'get',
- url: `https://api.bilibili.com/x/article/archives?ids=${aid}`,
- });
- return response.data;
-}
-
-const ProcessFeed = async (list, caches) =>
- await Promise.all(
- list
- .filter(async (aid) => {
- const data = await caches.tryGet('av' + aid, async () => await load(aid));
- return data.code === 0;
- })
- .map(async (aid) => {
- let data = await caches.tryGet('av' + aid, async () => await load(aid));
- data = data.data[aid + ''];
- const single = {
- title: data.title,
- description: `${data.desc}
`,
- pubDate: new Date(data.pubdate * 1000).toUTCString(),
- author: data.owner.name,
- link: `https://www.bilibili.com/video/av${aid}`,
- guid: `https://www.bilibili.com/video/av${aid}`,
- };
- return Promise.resolve(single);
- })
- );
+const iframe = (aid, page) =>
+ ``;
module.exports = {
- ProcessFeed,
+ iframe,
};
diff --git a/lib/routes/bilibili/video.js b/lib/routes/bilibili/video.js
index bb60fc231..1f1afca7f 100644
--- a/lib/routes/bilibili/video.js
+++ b/lib/routes/bilibili/video.js
@@ -1,8 +1,10 @@
const got = require('@/utils/got');
const cache = require('./cache');
+const utils = require('./utils');
module.exports = async (ctx) => {
const uid = ctx.params.uid;
+ const disableEmbed = ctx.params.disableEmbed;
const name = await cache.getUsernameFromUID(ctx, uid);
const response = await got({
@@ -23,7 +25,7 @@ module.exports = async (ctx) => {
data.data.vlist &&
data.data.vlist.map((item) => ({
title: item.title,
- description: `${item.description}
`,
+ description: `${item.description}${!disableEmbed ? `
${utils.iframe(item.aid)}` : ''}
`,
pubDate: new Date(item.created * 1000).toUTCString(),
link: `https://www.bilibili.com/video/av${item.aid}`,
author: name,
diff --git a/lib/routes/bilibili/vsearch.js b/lib/routes/bilibili/vsearch.js
index bb0d63e70..ca0621fd7 100644
--- a/lib/routes/bilibili/vsearch.js
+++ b/lib/routes/bilibili/vsearch.js
@@ -1,8 +1,10 @@
const got = require('@/utils/got');
+const utils = require('./utils');
module.exports = async (ctx) => {
const kw = ctx.params.kw;
const order = ctx.params.order || 'pubdate';
+ const disableEmbed = ctx.params.disableEmbed;
const kw_url = encodeURIComponent(kw);
const response = await got({
@@ -39,7 +41,8 @@ module.exports = async (ctx) => {
`
${des}
` +
`
` +
`Tag: ${item.tag}
` +
- `Match By: ${item.hit_columns.join(',')}`,
+ `Match By: ${item.hit_columns.join(',')}` +
+ (!disableEmbed ? `
${utils.iframe(item.aid)}` : ''),
pubDate: new Date(item.pubdate * 1000).toUTCString(),
guid: `${item.arcurl}`,
link: `${item.arcurl}`,