From 65f85fd821291d88253cb35c063087c6a52b9ad8 Mon Sep 17 00:00:00 2001 From: zhiyu1998 Date: Sun, 9 Apr 2023 14:56:43 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=88=20perf:=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=93=94=E5=93=A9=E5=93=94=E5=93=A9=E4=BF=A1=E6=81=AF=E6=8E=92?= =?UTF-8?q?=E6=A6=9C=EF=BC=8C=E6=9B=B4=E7=BE=8E=E8=A7=82=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/tools.js | 26 ++++++++++++++++---------- utils/biliInfo.js | 1 + 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/apps/tools.js b/apps/tools.js index 64176aa..e71f936 100644 --- a/apps/tools.js +++ b/apps/tools.js @@ -330,21 +330,18 @@ export class tools extends plugin { // 视频信息获取例子:http://api.bilibili.com/x/web-interface/view?bvid=BV1hY411m7cB // 请求视频信息 const videoInfo = await getVideoInfo(url); - const { title, desc, duration, dynamic, stat, aid, cid, pages } = videoInfo; - // 限制时长 & 考虑分页视频情况 - const query = querystring.parse(url); - const curPage = query?.p || 0; - const curDuration = pages?.[curPage].duration || duration; - if (curDuration > this.biliDuration) { - e.reply(`当前视频时长约:${(pages?.[curPage].duration / 60).toFixed(0)}分钟,\n大于管理员设置的最大时长 ${this.biliDuration / 60} 分钟!`); - return true; - } + const { title, pic, desc, duration, dynamic, stat, aid, cid, pages } = videoInfo; // 视频信息 let { view, danmaku, reply, favorite, coin, share, like } = stat; // 数据处理 const dataProcessing = data => { return Number(data) >= TEN_THOUSAND ? (data / TEN_THOUSAND).toFixed(1) + "万" : data; }; + // 限制时长 & 考虑分页视频情况 + const query = querystring.parse(url); + const curPage = query?.p || 0; + const curDuration = pages?.[curPage].duration || duration; + const isLimitDuration = curDuration > this.biliDuration // 格式化数据 const combineContent = `\n点赞:${dataProcessing(like)} | 硬币:${dataProcessing( @@ -354,7 +351,16 @@ export class tools extends plugin { danmaku, )} | 评论:${dataProcessing(reply)}\n` + `简介:${desc}`; - e.reply([`识别:哔哩哔哩:${title}`, combineContent]); + let biliInfo = [`识别:哔哩哔哩:${title}`, combineContent] + if (isLimitDuration) { + biliInfo.unshift(segment.image(pic)) + const durationInMinutes = (pages?.[curPage].duration / 60).toFixed(0); + biliInfo.push(`\n-----------------------限制说明-----------------------\n当前视频时长约:${durationInMinutes}分钟,\n大于管理员设置的最大时长 ${this.biliDuration / 60} 分钟!`) + e.reply(biliInfo); + return true; + } else { + e.reply(biliInfo); + } // 创建文件,如果不存在 const path = `${this.defaultPath}${this.e.group_id || this.e.user_id}/`; diff --git a/utils/biliInfo.js b/utils/biliInfo.js index 00e0e80..1fa3caa 100644 --- a/utils/biliInfo.js +++ b/utils/biliInfo.js @@ -11,6 +11,7 @@ async function getVideoInfo(url) { const respData = respJson.data; return { title: respData.title, + pic: respData.pic, desc: respData.desc, duration: respData.duration, dynamic: respJson.data.dynamic,