// Author: fruit.com.cn export const FALLBACK_IMAGE = '/assets/hero.jpg'; const MEDIA_BASE_URL = (import.meta.env.VITE_MEDIA_BASE_URL || '').replace(/\/$/, ''); export const resolveMedia = (value) => { if (!value) return FALLBACK_IMAGE; return /^https?:\/\//.test(value) ? value : `${MEDIA_BASE_URL}${value}`; }; export function resolvePlaybackUrl(value) { if (!value) return ''; return /^https?:\/\//.test(value) ? value : `${MEDIA_BASE_URL}${value}`; } export const getImage = (item = {}) => resolveMedia(item.coverLandscape || item.coverUrl || item.cover || item.posterUrl || item.imageUrl); export function selectPlaybackUrl(playback, fallback = '') { const tracks = playback?.tracks || []; const preferred = tracks.find((track) => track.quality === '360p') || tracks.find((track) => track.quality === 'AUTO') || tracks[0]; return resolvePlaybackUrl(preferred?.playUrl || playback?.playUrl || fallback); }