From 2cafdcaa82a174761a9f6782548c150c838b928d Mon Sep 17 00:00:00 2001 From: ikechan8370 Date: Sun, 23 Apr 2023 14:51:02 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20azure=E4=B8=8B=E4=BA=91=E8=BD=AC?= =?UTF-8?q?=E7=A0=81=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- guoba.support.js | 2 +- utils/uploadRecord.js | 40 +++++++++++++++------------------------- 2 files changed, 16 insertions(+), 26 deletions(-) diff --git a/guoba.support.js b/guoba.support.js index f577e76..2fed161 100644 --- a/guoba.support.js +++ b/guoba.support.js @@ -577,7 +577,7 @@ export function supportGuoba () { options: [ { label: '文件', value: 'file' }, { label: '链接', value: 'url' }, - { label: '数据', value: 'buffer' } + // { label: '数据', value: 'buffer' } ] } }, diff --git a/utils/uploadRecord.js b/utils/uploadRecord.js index 6b3972d..9db7f39 100644 --- a/utils/uploadRecord.js +++ b/utils/uploadRecord.js @@ -1,6 +1,6 @@ // import Contactable, { core } from 'oicq' import querystring from 'querystring' -import fetch, { File } from 'node-fetch' +import fetch, { File, FormData } from 'node-fetch' import fs from 'fs' import os from 'os' import util from 'util' @@ -37,16 +37,22 @@ async function uploadRecord (recordUrl) { } else if (Config.cloudTranscode) { try { if (Config.cloudMode === 'buffer' || Config.cloudMode === 'file') { - let response = await fetch(recordUrl, { - method: 'GET', - headers: { - 'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 12; MI 9 Build/SKQ1.211230.001)' - } - }) - if (Config.cloudMode === 'file') { + let buffer + if (!recordUrl.startsWith('http')) { + // 本地文件 + buffer = fs.readFileSync(recordUrl) + } else { + let response = await fetch(recordUrl, { + method: 'GET', + headers: { + 'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 12; MI 9 Build/SKQ1.211230.001)' + } + }) const blob = await response.blob() const arrayBuffer = await blob.arrayBuffer() - const buffer = Buffer.from(arrayBuffer) + buffer = Buffer.from(arrayBuffer) + } + if (Config.cloudMode === 'file') { const formData = new FormData() formData.append('file', new File([buffer], 'audio.wav')) const resultres = await fetch(`${Config.cloudTranscode}/audio`, { @@ -60,22 +66,6 @@ async function uploadRecord (recordUrl) { logger.error(t) throw e } - } else { - const buf = Buffer.from(await response.arrayBuffer()) - const resultres = await fetch(`${Config.cloudTranscode}/audio`, { - method: 'POST', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify({ recordBuffer: buf }) - }) - let t = await resultres.text() - try { - result = JSON.parse(t) - } catch (e) { - logger.error(t) - throw e - } } } else { const resultres = await fetch(`${Config.cloudTranscode}/audio`, {