Commit Graph

12 Commits

Author SHA1 Message Date
nk
24ed44e8ab feat(now-playing): добавить name станции в ответ (для матча обложек на клиенте) 2026-06-03 12:10:04 +03:00
nk
df20e0fac6 feat(now-playing): REST GET /now-playing (ключ — id станции каталога)
Клиенту нужен now-playing с правильным маппингом id (Record now-эндпоинт
использует id now-слотов, не каталога). Отдаём текущие треки по станциям
с stationId = catalog id, чтобы клиент сопоставлял по station.id.
2026-06-03 10:51:49 +03:00
nk
38fe92d695 feat(charts): сбор статистики проигрываний и API чартов
- модели Track / TrackPlay / TrackLike (+ миграция add_charts)
- сбор проигрываний в now-playing-поллере: при смене трека на станции
  пишется TrackPlay (нормализация artist+song -> Track), fire-and-forget
  обогащение через MusicBrainz (album/releaseDate)
- ChartsModule: GET /charts/tracks (период day/week/month/all, ранг, тренд,
  проигрывания, станции, лайки), GET /charts/tracks/:id (метрики, таймлайны
  популярности и лайков по дням, топ станций, isLiked), POST/DELETE like
- OptionalAuthGuard для публичной детальной страницы с опц. userId
2026-06-02 23:40:13 +03:00
nk
bbfec76a7b fix: use Node.js http module for reliable ICY parsing 2026-06-02 20:19:21 +03:00
nk
d0874ae9db fix: parallel ICY polling with batch size 10 and 5s timeout 2026-06-02 20:15:15 +03:00
nk
6b2e02f6c0 chore: warn on ICY errors for debugging 2026-06-02 20:11:35 +03:00
nk
0dee9d56b7 chore: add ICY poll logs 2026-06-02 20:08:17 +03:00
nk
1b0c59264f feat: ICY metadata fallback for non-Record stations 2026-06-02 20:03:25 +03:00
nk
09211dceb5 fix: broadcast stationId as int for Android mapping 2026-06-02 19:52:33 +03:00
nk
d082a1ce07 chore: add debug logs to now-playing polling 2026-06-02 19:40:19 +03:00
nk
7823b17d55 feat: now-playing polling from Record API with station mapping and WebSocket broadcast 2026-06-02 19:31:48 +03:00
nk
8aadd62e3c feat: bootstrap NestJS backend with auth, stations, users, health-check, now-playing 2026-06-02 13:54:00 +03:00