mirror of
https://github.com/algerkong/AlgerMusicPlayer.git
synced 2026-07-09 11:07:35 +08:00
feat: 优化音源解析
This commit is contained in:
@@ -108,7 +108,7 @@ const convertToLxMusicInfo = (songResult: SongResult): LxMusicInfo => {
|
||||
singer: artistName,
|
||||
album: albumName,
|
||||
albumId,
|
||||
source: 'wy', // 默认使用网易云作为源,因为我们的数据来自网易云
|
||||
source: 'wy',
|
||||
interval,
|
||||
img: songResult.picUrl || songResult.al?.picUrl || ''
|
||||
};
|
||||
@@ -116,13 +116,11 @@ const convertToLxMusicInfo = (songResult: SongResult): LxMusicInfo => {
|
||||
|
||||
/**
|
||||
* 获取最佳匹配的落雪音源
|
||||
* 因为我们的数据来自网易云,优先尝试 wy 音源
|
||||
*/
|
||||
const getBestMatchingSource = (
|
||||
availableSources: LxSourceKey[],
|
||||
_songSource?: string
|
||||
): LxSourceKey | null => {
|
||||
// 优先级顺序:网易云 > 酷我 > 咪咕 > 酷狗 > QQ音乐
|
||||
const priority: LxSourceKey[] = ['wy', 'kw', 'mg', 'kg', 'tx'];
|
||||
|
||||
for (const source of priority) {
|
||||
@@ -196,7 +194,9 @@ export class LxMusicStrategy {
|
||||
return null;
|
||||
}
|
||||
|
||||
console.log(`[LxMusicStrategy] 使用激活的音源: ${activeScript.name} (ID: ${activeScript.id})`);
|
||||
console.log(
|
||||
`[LxMusicStrategy] 使用激活的音源: ${activeScript.name} (ID: ${activeScript.id})`
|
||||
);
|
||||
|
||||
// 获取或初始化执行器
|
||||
let runner = getLxMusicRunner();
|
||||
|
||||
@@ -26,7 +26,6 @@ export const getMusicUrl = async (id: number, isDownloaded: boolean = false) =>
|
||||
id,
|
||||
level: settingStore.setData.musicQuality || 'higher',
|
||||
encodeType: settingStore.setData.musicQuality == 'lossless' ? 'aac' : 'flac',
|
||||
// level为lossless时,encodeType=flac时网易云会返回hires音质,encodeType=aac时网易云会返回lossless音质
|
||||
cookie: `${localStorage.getItem('token')} os=pc;`
|
||||
}
|
||||
});
|
||||
|
||||
@@ -25,7 +25,7 @@ interface KugouSuggestionResponse {
|
||||
data: Suggestion[];
|
||||
}
|
||||
|
||||
// 网易云搜索建议返回的数据结构(部分字段)
|
||||
// 搜索建议返回的数据结构(部分字段)
|
||||
interface NeteaseSuggestResult {
|
||||
result?: {
|
||||
songs?: Array<{ name: string }>;
|
||||
@@ -36,7 +36,7 @@ interface NeteaseSuggestResult {
|
||||
}
|
||||
|
||||
/**
|
||||
* 从酷狗获取搜索建议
|
||||
* 获取搜索建议
|
||||
* @param keyword 搜索关键词
|
||||
*/
|
||||
export const getSearchSuggestions = async (keyword: string) => {
|
||||
@@ -54,7 +54,7 @@ export const getSearchSuggestions = async (keyword: string) => {
|
||||
console.log('[API] Running in Electron, using IPC proxy.');
|
||||
responseData = await window.api.getSearchSuggestions(keyword);
|
||||
} else {
|
||||
// 非 Electron 环境下,使用网易云接口
|
||||
// 非 Electron 环境下,使用接口
|
||||
const res = await request.get<NeteaseSuggestResult>('/search/suggest', {
|
||||
params: { keywords: keyword }
|
||||
});
|
||||
@@ -67,7 +67,7 @@ export const getSearchSuggestions = async (keyword: string) => {
|
||||
|
||||
// 去重并截取前10个
|
||||
const unique = Array.from(new Set(names)).slice(0, 10);
|
||||
console.log('[API] getSearchSuggestions: 网易云建议解析成功:', unique);
|
||||
console.log('[API] getSearchSuggestions: 解析成功:', unique);
|
||||
return unique;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user