From db092740609d0ec0c487e2200939b24988c69f09 Mon Sep 17 00:00:00 2001 From: nk Date: Wed, 3 Jun 2026 17:08:25 +0300 Subject: [PATCH] =?UTF-8?q?fix(enrich):=20=D0=BD=D0=BE=D1=80=D0=BC=D0=B0?= =?UTF-8?q?=D0=BB=D0=B8=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D1=8C=20=D0=BF=D1=83?= =?UTF-8?q?=D0=BD=D0=BA=D1=82=D1=83=D0=B0=D1=86=D0=B8=D1=8E=20=D0=B2=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=B8=D1=81=D0=BA=D0=B5=20iTunes=20(St.Thomas=20?= =?UTF-8?q?=E2=86=92=20St=20Thomas)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Пунктуация без пробела (St.Thomas, feat.) ломала запрос к iTunes — обложка существующего трека не находилась. Заменяем не-буквенно-цифровые символы на пробел перед поиском. Co-Authored-By: Claude Opus 4.8 --- src/enrich/enrichment.service.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/enrich/enrichment.service.ts b/src/enrich/enrichment.service.ts index 3353ef7..327eb49 100644 --- a/src/enrich/enrichment.service.ts +++ b/src/enrich/enrichment.service.ts @@ -180,7 +180,13 @@ export class EnrichmentService { genre: string | null; } | null> { try { - const term = encodeURIComponent(`${artist} ${song}`.trim()); + // Пунктуация в названии («St.Thomas», «feat.») ломает поиск iTunes — + // заменяем все не-буквенно-цифровые символы на пробел и схлопываем. + const clean = `${artist} ${song}` + .replace(/[^\p{L}\p{N}]+/gu, ' ') + .replace(/\s+/g, ' ') + .trim(); + const term = encodeURIComponent(clean); const url = `https://itunes.apple.com/search?term=${term}&entity=song&limit=1`; const res = await fetch(url, { headers: { 'User-Agent': 'radiOLA/1.0 +https://radiola.app' },