From d8b6a6024fc904bbb5ba7476308ff9b85f29afc7 Mon Sep 17 00:00:00 2001 From: nk Date: Fri, 5 Jun 2026 20:27:01 +0300 Subject: [PATCH] =?UTF-8?q?fix(now-playing):=20=D0=93=D0=A3=D0=A1=D0=AC=20?= =?UTF-8?q?=D0=A2=D0=B5=D1=85=D0=BD=D0=BE=D1=80=D0=B5=D0=B9=D0=B2=20?= =?UTF-8?q?=E2=80=94=20=D0=B0=D0=BB=D0=B8=D0=B0=D1=81=20slug=20harddance?= =?UTF-8?q?=E2=86=92technorave?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit У этого канала mount потока (harddance) не совпадает с ключом AzuraCast API (technorave). Остальные 15 — совпадают. --- src/now-playing/goose-now-playing.service.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/now-playing/goose-now-playing.service.ts b/src/now-playing/goose-now-playing.service.ts index 3091a11..835feab 100644 --- a/src/now-playing/goose-now-playing.service.ts +++ b/src/now-playing/goose-now-playing.service.ts @@ -81,9 +81,17 @@ export class GooseNowPlayingService { this.logger.log(`Goose poll: ${updated}/${stations.length} обновлено`); } + // У большинства каналов mount потока == ключ now-playing API. Исключение: + // Технорейв — поток /listen/harddance/, а в API он /api/nowplaying/technorave. + private readonly slugAliases: Record = { + harddance: 'technorave', + }; + // https://radiogoose.ru/listen/bigroom/play → bigroom private extractSlug(streamUrl: string): string | null { const m = streamUrl.match(/\/listen\/([a-z0-9]+)\/play/i); - return m ? m[1].toLowerCase() : null; + if (!m) return null; + const slug = m[1].toLowerCase(); + return this.slugAliases[slug] ?? slug; } }