From 156e2b5bfc1005c6f917beaebce5f7a5a03ca919 Mon Sep 17 00:00:00 2001 From: zhiyu1998 <542716863@qq.com> Date: Thu, 8 Aug 2024 23:02:11 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9E=20fix:=20=E4=BF=AE=E5=A4=8DWindows?= =?UTF-8?q?=E4=B8=8B=E8=A7=A3=E6=9E=90ytb=E5=87=BA=E7=8E=B0=E9=94=99?= =?UTF-8?q?=E8=AF=AF[#I9QCR8]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 修复Windows下解析ytb出现错误 2. 修复 xhs 文档问题 3. 上传视频增加兜底策略 --- apps/tools.js | 52 ++++++++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/apps/tools.js b/apps/tools.js index a884521..d03d2de 100644 --- a/apps/tools.js +++ b/apps/tools.js @@ -989,7 +989,7 @@ export class tools extends plugin { const downloadPath = `${this.getCurDownloadPath(e)}`; // 检测没有 cookie 则退出 if (_.isEmpty(this.xiaohongshuCookie)) { - e.reply(`2024-8-2后反馈必须使用ck,不然无法解析请填写相关ck\n文档:${HELP_DOC}`); + e.reply(`2024-8-2后反馈必须使用ck,不然无法解析请填写相关ck\n${HELP_DOC}`); return; } // 获取信息 @@ -1325,7 +1325,7 @@ export class tools extends plugin { */ async dy2b(path, url, isOversea) { return new Promise((resolve, reject) => { - const command = `yt-dlp ${isOversea ? "" : `--proxy ${this.myProxy}`} -P ${path} -o "temp.%(ext)s" -f 'best[height<=720][ext=mp4]' --merge-output-format "mp4" ${url}`; + const command = `yt-dlp ${isOversea ? "" : `--proxy ${this.myProxy}`} -P ${path} -o "temp.%(ext)s" --merge-output-format "mp4" ${url}`; exec(command, (error, stdout) => { if (error) { console.error(`Error executing command: ${error}`); @@ -2084,27 +2084,33 @@ export class tools extends plugin { * @param videoSizeLimit 发送转上传视频的大小限制,默认70MB */ async sendVideoToUpload(e, path, videoSizeLimit = this.videoSizeLimit) { - // logger.info(videoSizeLimit); - const isLag = await this.isLagRangeDriver(); - // 判断是否是拉格朗日 - if (isLag === 1) { - // 构造拉格朗日适配器 - const lagrange = new LagrangeAdapter(this.toolsConfig.lagrangeForwardWebSocket); - // 上传群文件 - await lagrange.uploadGroupFile(e.user_id || e.sender.card, e.group_id, path); - // 上传完直接返回 - return; - } - // 判断文件是否存在 - if (!fs.existsSync(path)) { - return e.reply('视频不存在'); - } - const stats = fs.statSync(path); - const videoSize = (stats.size / (1024 * 1024)).toFixed(2); - if (videoSize > videoSizeLimit) { - e.reply(`当前视频大小:${videoSize}MB,\n大于设置的最大限制,\n改为上传群文件`); - await this.uploadGroupFile(e, path); - } else { + try { + // logger.info(videoSizeLimit); + const isLag = await this.isLagRangeDriver(); + // 判断是否是拉格朗日 + if (isLag === 1) { + // 构造拉格朗日适配器 + const lagrange = new LagrangeAdapter(this.toolsConfig.lagrangeForwardWebSocket); + // 上传群文件 + await lagrange.uploadGroupFile(e.user_id || e.sender.card, e.group_id, path); + // 上传完直接返回 + return; + } + // 判断文件是否存在 + if (!fs.existsSync(path)) { + return e.reply('视频不存在'); + } + const stats = fs.statSync(path); + const videoSize = (stats.size / (1024 * 1024)).toFixed(2); + if (videoSize > videoSizeLimit) { + e.reply(`当前视频大小:${ videoSize }MB,\n大于设置的最大限制,\n改为上传群文件`); + await this.uploadGroupFile(e, path); + } else { + e.reply(segment.video(path)); + } + } catch (err) { + logger.error(`[R插件][发送视频判断是否需要上传] 发生错误:\n ${err}`); + e.reply(`上传发生错误,R插件正在为你采用备用策略,请稍等,如果发不出来请再次尝试!`); e.reply(segment.video(path)); } }