From 38e380a59f08c22f73ea49d67375a74cb90c5fb3 Mon Sep 17 00:00:00 2001 From: nk Date: Sat, 6 Jun 2026 09:50:18 +0300 Subject: [PATCH] =?UTF-8?q?fix(now-playing):=20Radio=207=20=D0=B3=D0=BB?= =?UTF-8?q?=D0=B0=D0=B2=D0=BD=D1=8B=D0=B5=20=D0=BA=D0=B0=D0=BD=D0=B0=D0=BB?= =?UTF-8?q?=D1=8B=20=E2=80=94=20slug=20=D0=BD=D0=B5=20=D1=81=D1=8A=D0=B5?= =?UTF-8?q?=D0=B4=D0=B0=D0=B5=D1=82=20'7'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Баг: strip /\d+$/ у маунта radio7128 резал '7128' → 'radio' (пусто в meta). Теперь slug = radio7(_слово)? без битрейта: radio7128→radio7, radio7_love64→radio7-love. --- src/now-playing/emg-now-playing.service.ts | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/now-playing/emg-now-playing.service.ts b/src/now-playing/emg-now-playing.service.ts index 4f2975e..054b054 100644 --- a/src/now-playing/emg-now-playing.service.ts +++ b/src/now-playing/emg-now-playing.service.ts @@ -103,13 +103,11 @@ export class EmgNowPlayingService { private extractSlug(streamUrl: string): string | null { const emg = streamUrl.match(/hls-\d+-([a-z0-9-]+)\.emgsound\.ru/i); if (emg) return emg[1].toLowerCase(); - const r7 = streamUrl.match(/radio7\.hostingradio\.ru[:0-9]*\/([a-z0-9_]+)/i); - if (r7) { - return r7[1] - .toLowerCase() - .replace(/\d+$/, '') - .replace(/_/g, '-'); - } + // Маунты radio7: radio7{br}, radio7_love{br}, radio7_happiness{br} (br=64/128/256). + // ВАЖНО: нельзя резать цифры с конца «\d+$» — у «radio7128» это съест «7» (→radio). + // Берём «radio7» + опциональный «_слово» (бренд), отбрасывая битрейт. + const r7 = streamUrl.match(/radio7\.hostingradio\.ru[:0-9]*\/(radio7(?:_[a-z]+)?)/i); + if (r7) return r7[1].toLowerCase().replace(/_/g, '-'); return null; }