diff --git a/lib/routes/bilibili/dynamic.js b/lib/routes/bilibili/dynamic.js
index 6779cea4a..5c8e70ad2 100644
--- a/lib/routes/bilibili/dynamic.js
+++ b/lib/routes/bilibili/dynamic.js
@@ -4,7 +4,6 @@ const utils = require('./utils');
/**
@by CaoMeiYouRen 2020-05-05 添加注释
- B站的动态种类繁多,大致可以总结为以下几种:
注意1:以下均以card为根对象
注意2:直接动态没有origin,转发动态有origin
注意3:转发动态格式统一为:
@@ -14,6 +13,7 @@ const utils = require('./utils');
- origin: 与原动态一致
注意4:本总结并不保证完善,而且未来B站可能会修改接口,因此仅供参考
+ B站的动态种类繁多,大致可以总结为以下几种:
- 文字动态
- user.uname: 用户名
- item.content: 正文
@@ -142,7 +142,6 @@ module.exports = async (ctx) => {
} else if (item.desc && item.desc.dynamic_id) {
link = `https://t.bilibili.com/${item.desc.dynamic_id}`;
}
-
const getTitle = (data) => data.title || data.description || data.content || (data.vest && data.vest.content) || '';
const getDes = (data) =>
data.dynamic || data.desc || data.description || data.content || data.summary || (data.vest && data.vest.content) + (data.sketch && `
${data.sketch.title}
${data.sketch.desc_text}`) || data.intro || '';
@@ -162,12 +161,36 @@ module.exports = async (ctx) => {
);
});
}
+ const getUrl = (data) => {
+ if (!data) {
+ return '';
+ }
+ if (data.aid) {
+ return `
视频地址:https://www.bilibili.com/video/av${data.aid}`;
+ }
+ if (data.image_urls) {
+ return `
专栏地址:https://www.bilibili.com/read/cv${data.id}`;
+ }
+ if (data.upper) {
+ return `
音频地址:https://www.bilibili.com/audio/au${data.id}`;
+ }
+ if (data.roomid) {
+ return `
直播间地址:https://live.bilibili.com/${data.roomid}`;
+ }
+ if (data.sketch) {
+ return `
活动地址:${data.sketch.target_url}`;
+ }
+ if (data.url) {
+ return `
地址:${data.url}`;
+ }
+ return '';
+ };
return {
title: getTitle(data),
description: `${data_content || getDes(data)}${
origin && getOriginName(origin) ? `
//转发自: @${getOriginName(origin)}: ${getOriginTitle(origin.item || origin)}${getDes(origin.item || origin)}` : `${getOriginDes(origin)}`
- }${getIframe(data)}${getIframe(origin)}${imgHTML ? `
${imgHTML}` : ''}${videoHTML ? `
${videoHTML}` : ''}`,
+ }
${getUrl(data)}${getUrl(origin)}${getIframe(data)}${getIframe(origin)}${imgHTML ? `
${imgHTML}` : ''}${videoHTML ? `
${videoHTML}` : ''}`,
pubDate: new Date(item.desc.timestamp * 1000).toUTCString(),
link: link,
};