fix: revert to server proxy logic and add resilient fallback for win32 to prevent 500 errors

This commit is contained in:
2026-08-01 17:51:08 +08:00
parent 038662c15e
commit b8aee4d766
+20 -6
View File
@@ -2473,9 +2473,7 @@ app.post('/api/tts/generate', express.json(), async (req, res) => {
try {
let proxyUrl = process.env.HTTP_PROXY || process.env.http_proxy || process.env.HTTPS_PROXY || process.env.https_proxy || process.env.ALL_PROXY || process.env.all_proxy;
if (!proxyUrl && os.platform() === 'win32') {
proxyUrl = 'http://127.0.0.1:7890';
}
console.log(`[TTS] Sending request for text: "${text}" with model "${model}"${proxyUrl ? ` via proxy: ${proxyUrl}` : ''}`);
const requestBody = JSON.stringify({
@@ -2495,9 +2493,25 @@ app.post('/api/tts/generate', express.json(), async (req, res) => {
body: requestBody
};
const response = proxyUrl
? await requestViaProxy('https://fishaudio.fse-media.group/v1/tts', options, proxyUrl)
: await requestDirect('https://fishaudio.fse-media.group/v1/tts', options);
// Always try to use local proxy first if we are on a Windows machine
if (!proxyUrl && os.platform() === 'win32') {
proxyUrl = 'http://127.0.0.1:7890';
}
let response;
try {
response = proxyUrl
? await requestViaProxy('https://fishaudio.fse-media.group/v1/tts', options, proxyUrl)
: await requestDirect('https://fishaudio.fse-media.group/v1/tts', options);
} catch (e) {
// Fallback for Windows if local proxy fails
if (os.platform() === 'win32' && proxyUrl === 'http://127.0.0.1:7890') {
console.log(`[TTS] Local proxy failed, attempting direct connection...`);
response = await requestDirect('https://fishaudio.fse-media.group/v1/tts', options);
} else {
throw e;
}
}
if (!response.ok) {
const msg = (response.text && String(response.text).trim().length > 0)