diff --git a/apps/tools.js b/apps/tools.js index e93a023..01d38c6 100644 --- a/apps/tools.js +++ b/apps/tools.js @@ -211,6 +211,8 @@ export class tools extends plugin { this.biliDuration = this.toolsConfig.biliDuration; // 加载哔哩哔哩是否使用BBDown this.biliUseBBDown = this.toolsConfig.biliUseBBDown; + // 加载哔哩哔哩是否使用Aria2 + this.biliUseAria2 = this.toolsConfig.biliUseAria2; // 加载抖音Cookie this.douyinCookie = this.toolsConfig.douyinCookie; // 加载抖音是否压缩 @@ -627,7 +629,7 @@ export class tools extends plugin { // 删除之前的文件 await checkAndRemoveFile(`${tempPath}.mp4`); // 下载视频 - await startBBDown(url, path, this.biliSessData); + await startBBDown(url, path, this.biliSessData, this.biliUseAria2); // 发送视频 return this.sendVideoToUpload(e, `${tempPath}.mp4`); } diff --git a/config/tools.yaml b/config/tools.yaml index 4755aba..416f223 100644 --- a/config/tools.yaml +++ b/config/tools.yaml @@ -10,6 +10,7 @@ biliSessData: '' # 哔哩哔哩的SESSDATA biliIntroLenLimit: 50 # 哔哩哔哩简介长度限制,填 0 或者 -1 可以不做任何限制,显示完整简介 biliDuration: 480 # 哔哩哔哩限制的最大视频时长(默认8分钟),单位:秒 biliUseBBDown: false # 是否使用BBDown,默认不开启,开启后使用强劲的BBDown下载最高画质 +biliUseAria2: false # 是否使用Aria2下载 douyinCookie: '' # douyin's cookie, 格式:odin_tt=xxx;passport_fe_beating_status=xxx;sid_guard=xxx;uid_tt=xxx;uid_tt_ss=xxx;sid_tt=xxx;sessionid=xxx;sessionid_ss=xxx;sid_ucp_v1=xxx;ssid_ucp_v1=xxx;passport_assist_user=xxx;ttwid=xxx; douyinCompression: true # true-压缩,false-不压缩;是否使用压缩视频格式的抖音(默认使用),使用后加速视频发送 diff --git a/guoba.support.js b/guoba.support.js index 6141bf8..79e134b 100644 --- a/guoba.support.js +++ b/guoba.support.js @@ -129,6 +129,14 @@ export function supportGuoba() { component: "Switch", required: false, }, + { + field: "tools.biliUseBBDown", + label: "使用Aria2下载", + bottomHelpMessage: + "【默认不开启,目前只有开启BBDown后才有效果】如果不爱折腾就使用默认下载方式,如果喜欢折腾就开启,开启后更加强劲,宽带直接拉满,Debian和Ubuntu用户直接使用命令安装:apt-get install aria2", + component: "Switch", + required: false, + }, { field: "tools.douyinCookie", label: "抖音的Cookie", diff --git a/utils/bbdown-util.js b/utils/bbdown-util.js index f4480d3..58a98bd 100644 --- a/utils/bbdown-util.js +++ b/utils/bbdown-util.js @@ -3,9 +3,8 @@ import os from 'os'; /** * 检测 BBDown 是否存在 - * @param callback */ -export function checkBBDown(callback) { +export function checkBBDown() { // 根据操作系统选择命令 return new Promise((resolve, reject) => { const command = os.platform() === 'win32' ? 'where BBDown' : 'which BBDown'; @@ -27,8 +26,9 @@ export function checkBBDown(callback) { * @param videoUrl 视频链接 * @param downloadDir 下载目录 * @param biliSessData cookie + * @param biliUseAria2 使用Aria2 */ -export function startBBDown(videoUrl, downloadDir, biliSessData) { +export function startBBDown(videoUrl, downloadDir, biliSessData, biliUseAria2) { return new Promise((resolve, reject) => { // logger.info(videoUrl); // 解析URL并提取参数p(页数) @@ -44,7 +44,7 @@ export function startBBDown(videoUrl, downloadDir, biliSessData) { urlObj.search = newParams.toString(); videoUrl = urlObj.toString(); // 说明:-F 自定义名称,-c 自定义Cookie, --work-dir 设置下载目录,-M 多p下载的时候命名 - const command = `BBDown ${videoUrl} --work-dir ${downloadDir} ${biliSessData ? '-c SESSDATA=' + biliSessData : ''} ${pageParam ? '-p ' + pageParam + ' -M \"temp\"' : '-p 1' + ' -M \"temp\"'} -F temp --skip-subtitle --skip-cover`; + const command = `BBDown ${videoUrl} --work-dir ${downloadDir} ${biliSessData ? '-c SESSDATA=' + biliSessData : ''} ${pageParam ? '-p ' + pageParam + ' -M \"temp\"' : '-p 1' + ' -M \"temp\"'} -F temp --skip-subtitle --skip-cover ${biliUseAria2 ? '--use-aria2c' : ''}`; // logger.info(command); // 直接调用BBDown,因为它已经在系统路径中 exec(command, (error, stdout, stderr) => { @@ -56,7 +56,7 @@ export function startBBDown(videoUrl, downloadDir, biliSessData) { reject(`[R插件][BBDown]错误信息: ${stderr}`); return; } - // logger.info(`[R插件][BBDown]输出结果: ${stdout}`); + // logger.mark(`[R插件][BBDown]输出结果: ${stdout}`); resolve(stdout); }); });