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