feat: 优化B站动态url (#6124)

This commit is contained in:
CaoMeiYouRen 2020-11-08 10:12:37 +08:00 committed by GitHub
parent 5ed3284757
commit f02f71f60b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 26 additions and 3 deletions

View File

@ -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 && `<br>${data.sketch.title}<br>${data.sketch.desc_text}`) || data.intro || '';
@ -162,12 +161,36 @@ module.exports = async (ctx) => {
);
});
}
const getUrl = (data) => {
if (!data) {
return '';
}
if (data.aid) {
return `<br>视频地址https://www.bilibili.com/video/av${data.aid}`;
}
if (data.image_urls) {
return `<br>专栏地址https://www.bilibili.com/read/cv${data.id}`;
}
if (data.upper) {
return `<br>音频地址https://www.bilibili.com/audio/au${data.id}`;
}
if (data.roomid) {
return `<br>直播间地址https://live.bilibili.com/${data.roomid}`;
}
if (data.sketch) {
return `<br>活动地址:${data.sketch.target_url}`;
}
if (data.url) {
return `<br>地址:${data.url}`;
}
return '';
};
return {
title: getTitle(data),
description: `${data_content || getDes(data)}${
origin && getOriginName(origin) ? `<br><br>//转发自: @${getOriginName(origin)}: ${getOriginTitle(origin.item || origin)}${getDes(origin.item || origin)}` : `${getOriginDes(origin)}`
}${getIframe(data)}${getIframe(origin)}${imgHTML ? `<br>${imgHTML}` : ''}${videoHTML ? `<br>${videoHTML}` : ''}`,
}<br>${getUrl(data)}${getUrl(origin)}${getIframe(data)}${getIframe(origin)}${imgHTML ? `<br>${imgHTML}` : ''}${videoHTML ? `<br>${videoHTML}` : ''}`,
pubDate: new Date(item.desc.timestamp * 1000).toUTCString(),
link: link,
};