From 66ad37bea3b6f6c9629f048c8475dd7c383a38db Mon Sep 17 00:00:00 2001 From: alger Date: Sun, 5 Jul 2026 17:51:16 +0800 Subject: [PATCH] =?UTF-8?q?refactor(parser):=20=E7=A7=BB=E9=99=A4=E5=90=8E?= =?UTF-8?q?=E5=A4=87=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 4 +- src/renderer/api/musicParser.ts | 62 ++++++++++++----------------- src/renderer/utils/request_music.ts | 20 ---------- 3 files changed, 27 insertions(+), 59 deletions(-) delete mode 100644 src/renderer/utils/request_music.ts diff --git a/.env.development b/.env.development index 7a4451c..c8e045d 100644 --- a/.env.development +++ b/.env.development @@ -1,4 +1,2 @@ # 你的接口地址 (必填) -VITE_API = http://127.0.0.1:30488 -# 音乐破解接口地址 web端 -VITE_API_MUSIC = *** \ No newline at end of file +VITE_API = http://127.0.0.1:30488 \ No newline at end of file diff --git a/src/renderer/api/musicParser.ts b/src/renderer/api/musicParser.ts index 313e2ff..7d1ad7c 100644 --- a/src/renderer/api/musicParser.ts +++ b/src/renderer/api/musicParser.ts @@ -5,7 +5,6 @@ import { SongSourceConfigManager } from '@/services/SongSourceConfigManager'; import { useSettingsStore } from '@/store'; import type { SongResult } from '@/types/music'; import { isElectron } from '@/utils'; -import requestMusic from '@/utils/request_music'; import type { ParsedMusicResult } from './gdmusic'; import { parseFromGDMusic } from './gdmusic'; @@ -486,6 +485,18 @@ const getMusicConfig = (id: number, settingsStore?: any) => { return { musicSources, quality }; }; +/** + * 构造解析失败结果 + * (原远端后备接口 music_proxy 已停止服务,解析失败时不再回退到远端请求) + */ +const buildFailedResult = (message: string, code = 404): MusicParseResult => ({ + data: { + code, + message, + data: undefined + } +}); + /** * 音乐解析器主类 */ @@ -500,10 +511,10 @@ export class MusicParser { const startTime = performance.now(); try { - // 非Electron环境直接使用API请求 + // 非Electron环境不支持本地解析 if (!isElectron) { - console.log('非Electron环境,使用API请求'); - return await requestMusic.get('/music', { params: { id } }); + console.log('非Electron环境,不支持音乐解析'); + return buildFailedResult('当前环境不支持音乐解析'); } // 获取设置存储 @@ -511,8 +522,8 @@ export class MusicParser { try { settingsStore = useSettingsStore(); } catch (error) { - console.error('无法获取设置存储,使用后备方案:', error); - return await requestMusic.get('/music', { params: { id } }); + console.error('无法获取设置存储:', error); + return buildFailedResult('无法读取设置,音乐解析不可用'); } // 获取音源配置 @@ -541,8 +552,8 @@ export class MusicParser { } if (musicSources.length === 0) { - console.warn('没有配置可用的音源,使用后备方案'); - return await requestMusic.get('/music', { params: { id } }); + console.warn('没有配置可用的音源'); + return buildFailedResult('没有配置可用的音源'); } // 获取可用的解析策略 @@ -552,8 +563,8 @@ export class MusicParser { ); if (availableStrategies.length === 0) { - console.warn('没有可用的解析策略,使用后备方案'); - return await requestMusic.get('/music', { params: { id } }); + console.warn('没有可用的解析策略'); + return buildFailedResult('没有可用的解析策略'); } console.log( @@ -583,34 +594,13 @@ export class MusicParser { } } - console.warn('所有解析策略都失败了,使用后备方案'); + console.warn('所有解析策略都失败了'); } catch (error) { - console.error('MusicParser.parseMusic 执行异常,使用后备方案:', error); + console.error('MusicParser.parseMusic 执行异常:', error); } - // 后备方案:使用API请求 - try { - console.log('使用后备方案:API请求'); - const result = await requestMusic.get('/music', { params: { id } }); - - // 如果后备方案成功,也进行缓存 - if (result?.data?.data?.url) { - console.log('后备方案成功,缓存结果'); - await CacheManager.setCachedMusicUrl(id, result, []); - } - - return result; - } catch (apiError) { - console.error('API请求也失败了:', apiError); - const endTime = performance.now(); - console.log(`总耗时: ${(endTime - startTime).toFixed(2)}ms`); - return { - data: { - code: 500, - message: '所有解析方式都失败了', - data: undefined - } - }; - } + const endTime = performance.now(); + console.log(`总耗时: ${(endTime - startTime).toFixed(2)}ms`); + return buildFailedResult('所有解析方式都失败了', 500); } } diff --git a/src/renderer/utils/request_music.ts b/src/renderer/utils/request_music.ts deleted file mode 100644 index 7730f31..0000000 --- a/src/renderer/utils/request_music.ts +++ /dev/null @@ -1,20 +0,0 @@ -import axios from 'axios'; - -const baseURL = `${import.meta.env.VITE_API_MUSIC}`; -const request = axios.create({ - baseURL, - timeout: 10000 -}); - -// 请求拦截器 -request.interceptors.request.use( - (config) => { - return config; - }, - (error) => { - // 当请求异常时做一些处理 - return Promise.reject(error); - } -); - -export default request;