fix: azure下云转码适配

This commit is contained in:
ikechan8370 2023-04-23 14:51:02 +08:00
parent 49af9dad80
commit 2cafdcaa82
2 changed files with 16 additions and 26 deletions

View file

@ -577,7 +577,7 @@ export function supportGuoba () {
options: [
{ label: '文件', value: 'file' },
{ label: '链接', value: 'url' },
{ label: '数据', value: 'buffer' }
// { label: '数据', value: 'buffer' }
]
}
},

View file

@ -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`, {