fix(now-playing): EMG-фолбэк slug europaplus-{x} (Fresh застрял)
Slug из хоста потока не всегда = meta-slug: hls-01-fresh → meta это europaplus-fresh.
Если по основному slug пусто — пробуем europaplus-{slug}. Fresh теперь обновляется.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -48,14 +48,27 @@ export class EmgNowPlayingService {
|
|||||||
const slug = this.extractSlug(station.streamUrl);
|
const slug = this.extractSlug(station.streamUrl);
|
||||||
if (!slug) return;
|
if (!slug) return;
|
||||||
|
|
||||||
|
// Slug из хоста потока не всегда = slug в meta (напр. hls-01-fresh →
|
||||||
|
// в meta это europaplus-fresh). Если по основному пусто — пробуем префикс.
|
||||||
|
const candidates = [slug];
|
||||||
|
if (!slug.startsWith('europaplus') && slug !== 'dfm') {
|
||||||
|
candidates.push(`europaplus-${slug}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
let cur: EmgHistoryItem | null = null;
|
||||||
|
for (const c of candidates) {
|
||||||
const url =
|
const url =
|
||||||
`https://meta.hostingradio.ru/emg/${slug}/history` +
|
`https://meta.hostingradio.ru/emg/${c}/history` +
|
||||||
`?format=native&types=3&order=desc&date=${date}&from=${from}&to=${to}`;
|
`?format=native&types=3&order=desc&date=${date}&from=${from}&to=${to}`;
|
||||||
const res = await fetch(url, { headers: this.headers });
|
const res = await fetch(url, { headers: this.headers });
|
||||||
if (!res.ok) return;
|
if (!res.ok) continue;
|
||||||
|
const items = (await res.json()) as EmgHistoryItem[] | unknown;
|
||||||
const items = (await res.json()) as EmgHistoryItem[];
|
const first = Array.isArray(items) ? (items[0] as EmgHistoryItem) : null;
|
||||||
const cur = Array.isArray(items) ? items[0] : null;
|
if (first?.artist && first?.title) {
|
||||||
|
cur = first;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (!cur?.artist || !cur?.title) return;
|
if (!cur?.artist || !cur?.title) return;
|
||||||
|
|
||||||
await this.nowPlayingService.ingest({
|
await this.nowPlayingService.ingest({
|
||||||
|
|||||||
Reference in New Issue
Block a user