fix: 修正订阅卡片占位符样式和媒体 ID 校验逻辑

This commit is contained in:
jxxghp
2026-08-09 12:49:54 +08:00
parent 6bf9cf9d18
commit 139721d62a
2 changed files with 13 additions and 5 deletions
+5 -2
View File
@@ -1,11 +1,14 @@
import type { MediaDataSource } from '@/api/types'
const MUSICBRAINZ_ID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i
const MUSICBRAINZ_ID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i
/** 按媒体数据源校验原生 IDMusicBrainz 使用 UUID,其它现有来源使用数字 ID。 */
export function isValidMediaSourceId(value: string | number | null | undefined, source?: MediaDataSource): boolean {
const normalized = value?.toString().trim()
if (!normalized) return true
if (source === 'musicbrainz') return MUSICBRAINZ_ID_PATTERN.test(normalized)
// 无媒体上下文或来源为非 MusicBrainz 时,UUID 形态同样按 MusicBrainz ID 放行
if (source === 'musicbrainz' || MUSICBRAINZ_ID_PATTERN.test(normalized)) {
return MUSICBRAINZ_ID_PATTERN.test(normalized)
}
return /^\d+$/.test(normalized)
}