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}`,