feat(now-playing): DFM/Крутой Медиа через dfm.ru/api/n/current

Сабканалы DFM (Skrillex, Daft Punk, K-Pop, Игромания и др.) не отдают ICY-метаданные.
Единый веб-API dfm.ru/api/n/current даёт текущий трек + WebP-обложку по всем ~147
каналам (ключ slug). DfmNowPlayingService матчит наши DFM-станции по нормализованному
имени (+ числовой префикс, + алиасы для годов/Игромании/Pioneer). ICY-поллер
исключает genre=DFM.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
nk
2026-06-03 16:24:33 +03:00
parent 3215dd5a4e
commit 7e6b0c8dc6
3 changed files with 126 additions and 2 deletions

View File

@@ -24,11 +24,12 @@ export class IcyNowPlayingService {
@Interval(60000)
async pollIcyNowPlaying() {
// emgsound (ЕМГ) обрабатывает EmgNowPlayingService через meta-API; их HLS-потоки
// ICY-метаданных не отдают — исключаем, чтобы не тратить слоты впустую.
// ЕМГ (emgsound) и DFM/Крутой (genre=DFM) обрабатываются отдельными сервисами
// через их API — исключаем из ICY, чтобы не тратить слоты впустую.
const where = {
recordStationId: null,
isOnline: true,
genre: { not: 'DFM' },
NOT: { streamUrl: { contains: 'emgsound.ru' } },
};
const total = await this.prisma.station.count({ where });