playMusicSong(song, index)}>
{song.name}
{song.artist}
diff --git a/src/lib/music-v2.ts b/src/lib/music-v2.ts
index fc91f17..399301f 100644
--- a/src/lib/music-v2.ts
+++ b/src/lib/music-v2.ts
@@ -91,7 +91,23 @@ export interface LxServerSong {
interval?: string;
albumName?: string;
img?: string;
+ image?: string;
+ imageUrl?: string;
+ albumPicUrl?: string;
+ pic?: string;
+ cover?: string;
songmid?: string;
+ meta?: {
+ picUrl?: string;
+ albumName?: string;
+ };
+ album?: {
+ picUrl?: string;
+ pic?: string;
+ };
+ al?: {
+ picUrl?: string;
+ };
}
export function isMusicSource(source: string | null | undefined): source is MusicSource {
@@ -163,8 +179,18 @@ export function normalizeLxSong(song: LxServerSong): MusicV2Song {
songmid: song.songmid,
name: song.name,
artist: song.singer,
- album: song.albumName,
- cover: song.img,
+ album: song.albumName || song.meta?.albumName,
+ cover:
+ song.img ||
+ song.pic ||
+ song.cover ||
+ song.image ||
+ song.imageUrl ||
+ song.albumPicUrl ||
+ song.meta?.picUrl ||
+ song.album?.picUrl ||
+ song.album?.pic ||
+ song.al?.picUrl,
durationText: song.interval,
});
}
diff --git a/src/lib/music/shared.ts b/src/lib/music/shared.ts
index 3bdb10c..c615bd8 100644
--- a/src/lib/music/shared.ts
+++ b/src/lib/music/shared.ts
@@ -19,12 +19,24 @@ export function normalizeSource(source: string | undefined | null): MusicSource
export function mapSong(song: any): Song {
const rawSource = song.source || song.platform || song.vendor || song.origin;
+ const pic =
+ song.pic ||
+ song.cover ||
+ song.img ||
+ song.image ||
+ song.imageUrl ||
+ song.albumPicUrl ||
+ song.meta?.picUrl ||
+ song.album?.picUrl ||
+ song.album?.pic ||
+ song.al?.picUrl;
+
return {
id: String(song.id ?? song.songId ?? song.rid ?? song.mid ?? ''),
name: song.name || song.title || '未知歌曲',
artist: song.artist || song.singer || song.artists || '未知艺术家',
album: song.album || song.albumName,
- pic: song.pic || song.cover || song.img,
+ pic,
platform: normalizeSource(rawSource),
duration: song.durationSec || song.duration,
durationText: song.durationText || song.interval,