-
e1bceb8bd1
feat(privacy): страница политики конфиденциальности на /privacy
main
nk
2026-06-08 13:55:44 +03:00
-
0dd52ddc3b
ops: вернуть в compose конфиг авто-обновления (bind-mount appdist + env)
nk
2026-06-07 19:27:23 +03:00
-
791156f814
feat(shazam): глобальный лимит распознаваний (защита баланса коинов)
nk
2026-06-07 18:47:25 +03:00
-
059ebc9c45
feat(shazam): реальный двухстадийный флоу shazam-api.com (recognize → poll)
nk
2026-06-07 18:45:00 +03:00
-
1616c231b7
feat(shazam): распознавание трека через Shazam API для станций без метаданных
nk
2026-06-07 18:37:53 +03:00
-
05e3796b85
feat(app-version): эндпоинт /app-version + хостинг APK для авто-обновления
nk
2026-06-06 20:21:54 +03:00
-
4aa3b55b5e
perf(backend): ретенция track_plays, прун сирот-треков, проекция now-playing, пул БД
nk
2026-06-06 17:08:36 +03:00
-
944ec63df0
refactor(now-playing): единый IcyReader + реестр dedicated-источников
nk
2026-06-06 16:54:02 +03:00
-
a3434ed894
perf(backend): индексы, кэш чартов, пропуск upsert, фикс N+1 обогащения
nk
2026-06-06 16:20:25 +03:00
-
924a4a0ab1
fix(charts): отсев заглушек Online-Radio и джинглов FX-NN
nk
2026-06-06 15:52:41 +03:00
-
0084177d15
fix(charts): отсев мусора и разговорных/шуточных станций из чарта
nk
2026-06-06 15:49:17 +03:00
-
38e380a59f
fix(now-playing): Radio 7 главные каналы — slug не съедает '7'
nk
2026-06-06 09:50:18 +03:00
-
cc30422d8d
feat(now-playing): 101.ru (Comedy Radio + Радио Energy) и Radio 7 через EMG
nk
2026-06-06 09:29:41 +03:00
-
c4c475544a
feat(now-playing): Радио Ваня + Русская Волна; Питер объединён в SpbRadio
nk
2026-06-06 09:18:23 +03:00
-
3c4f349f71
fix(now-playing): Орфей — чиним кодировку (двойная мойибейк cp1251) + режем хекс-хвосты
nk
2026-06-06 09:01:03 +03:00
-
c87a0caa5c
feat(now-playing): Питер ФМ и Орфей
nk
2026-06-06 08:34:32 +03:00
-
426fd0e197
feat(now-playing): Новое Радио BY — now-playing с правильной кодировкой + Wake Up
nk
2026-06-05 21:20:06 +03:00
-
d5f30cd05d
fix(now-playing): ГУСЬ — не использовать битый art AzuraCast, обложки через обогащение
nk
2026-06-05 20:36:45 +03:00
-
d8b6a6024f
fix(now-playing): ГУСЬ Технорейв — алиас slug harddance→technorave
nk
2026-06-05 20:27:01 +03:00
-
cb0e401854
feat(now-playing): ГУСЬ (radiogoose) — now-playing + обложки, починка потоков
nk
2026-06-05 20:22:28 +03:00
-
fd26e4df57
chore(stations): удалены мёртвые каналы Зайцева New year/Hvilya
nk
2026-06-05 20:07:20 +03:00
-
a06a9b2a2b
feat(now-playing): now-playing + обложки для Зайцев ФМ
nk
2026-06-05 19:52:37 +03:00
-
4d9fd24074
feat(now-playing): now-playing + обложки для каналов Unistar
nk
2026-06-05 19:37:17 +03:00
-
1f67e01ac8
feat(covers): POST /covers/submit — приём обложки, найденной клиентом
nk
2026-06-04 16:59:36 +03:00
-
52c8c3f69f
fix(enrich): быстрый now-playing проход — только Deezer (без затыка iTunes)
nk
2026-06-04 16:40:06 +03:00
-
28487a7911
fix(enrich): iTunes/Deezer через DE-прокси + троттлинг (RU-IP забанен)
nk
2026-06-04 16:30:06 +03:00
-
59aa23ff77
fix(enrich): coverFast — очищенный iTunes + Deezer (не множить лимит)
nk
2026-06-04 16:06:43 +03:00
-
ba9b4054e8
feat(enrich): больше обложек — очистка запроса iTunes + фолбэк Deezer
nk
2026-06-04 15:50:20 +03:00
-
35f9a2b7cc
chore(stations): Royal Radio — https вместо http (301-редирект)
nk
2026-06-04 15:31:13 +03:00
-
c2e941f1c3
chore(stations): Romantika (711) — рабочий HLS вместо мёртвого srv21
nk
2026-06-04 15:18:25 +03:00
-
326bbbc0ee
chore(stations): Like FM (718) — рабочий HLS, группа Like FM
nk
2026-06-04 15:05:09 +03:00
-
87cc67072c
chore(scripts): пробер битрейт-вариантов потоков станций
nk
2026-06-04 12:37:11 +03:00
-
3c6dbed659
feat(now-playing): Radio ROKS через TavR Media API (трек + обложки)
nk
2026-06-04 11:44:30 +03:00
-
51576f7198
feat(now-playing): Радио Монте-Карло через Крутой Медиа API
nk
2026-06-04 10:55:09 +03:00
-
d6b8be124e
perf(enrich): 3-й IP Discogs (token3 через форс-IPv4 RU) + concurrency 12
nk
2026-06-04 10:21:37 +03:00
-
7457498f5b
perf(enrich): concurrency 8 — задействовать оба IP Discogs (RU+DE)
nk
2026-06-04 10:10:39 +03:00
-
e982fde730
feat(enrich): 2-й токен Discogs через DE-прокси (2 IP → ~108/мин жанров)
nk
2026-06-04 10:01:37 +03:00
-
dfdfb7e4ab
fix(enrich): Discogs троттлит по IP — общий лимит ~54/мин (стоп 429-шторм)
nk
2026-06-04 09:52:39 +03:00
-
94e7f46b39
perf(enrich): ротация двух токенов Discogs (~108/мин жанров)
nk
2026-06-04 09:45:35 +03:00
-
ed94bd73d7
perf(enrich): cover-проход эфира 8 параллельно + защита от наложения
nk
2026-06-03 21:02:33 +03:00
-
36043c32b0
perf(enrich): быстрый cover-only проход эфира через iTunes (без Discogs-гейта)
nk
2026-06-03 20:56:50 +03:00
-
5164843824
perf(enrich): rate-limiter на Discogs + concurrency 5 (обложки быстрее)
nk
2026-06-03 20:51:28 +03:00
-
588857a73e
feat(now-playing): MAXIMUM через тот же Крутой-API (dfm.ru/api/n/current)
nk
2026-06-03 20:36:48 +03:00
-
d46020bd37
chore(stations): Love Radio -> потоки n340 (синхр. с клиентом)
nk
2026-06-03 20:14:26 +03:00
-
bd2cd36f1e
fix(now-playing): Love Radio — ICY авторизованных n340-потоков (per-channel)
nk
2026-06-03 20:09:01 +03:00
-
68c919c8ba
fix(now-playing): Love Radio — online?musicStreamId (per-channel), не history
nk
2026-06-03 18:23:56 +03:00
-
fa7742d06e
feat(now-playing): Love Radio через api.loveradio.ru (ICY шлёт мусор onlinestop56k)
nk
2026-06-03 18:19:12 +03:00
-
338f189f33
fix(enrich): не помечать done при сбое запроса iTunes (промах не застывает)
nk
2026-06-03 18:09:54 +03:00
-
40a9f3968f
feat(stations): корректный health-check + эндпоинт offline-ids
nk
2026-06-03 17:56:59 +03:00
-
c2f638e1a1
chore(stations): синхр. — отключены 67 мёртвых станций
nk
2026-06-03 17:48:45 +03:00
-
7ff48fff29
fix(now-playing): EMG-фолбэк slug europaplus-{x} (Fresh застрял)
nk
2026-06-03 17:26:51 +03:00
-
8f0ec8a5b8
perf(enrich): снизить параллельность 3->2 (уложиться в лимит Discogs 60/мин)
nk
2026-06-03 17:17:12 +03:00
-
db09274060
fix(enrich): нормализовать пунктуацию в поиске iTunes (St.Thomas → St Thomas)
nk
2026-06-03 17:08:25 +03:00
-
982c42cdf2
chore(stations): синхр. — отключены мёртвые EP-каналы Acoustic/ResiDance
nk
2026-06-03 17:05:15 +03:00
-
7e6b0c8dc6
feat(now-playing): DFM/Крутой Медиа через dfm.ru/api/n/current
nk
2026-06-03 16:24:33 +03:00
-
3215dd5a4e
fix(now-playing): отсекать JSON-статус в ICY StreamTitle (101.ru)
nk
2026-06-03 16:11:26 +03:00
-
3049b1ec89
chore(stations): актуальные emgsound HLS-потоки для 8 каналов Европы Плюс
nk
2026-06-03 15:47:27 +03:00
-
499863744f
fix(now-playing): EMG-поллер не фильтрует по isOnline + чинит ошибочный offline
nk
2026-06-03 15:34:05 +03:00
-
38b2aee26d
feat(now-playing): EMG (Европа Плюс и др.) now-playing через meta.hostingradio
nk
2026-06-03 15:28:06 +03:00
-
dcc2f599f9
fix(enrich): непрерывный бэкафилл (пополнять очередь когда почти пуста)
nk
2026-06-03 15:05:51 +03:00
-
5bd7bfb923
feat(enrich): iTunes-фолбэк для жанра/альбома/года (гибрид с Discogs)
nk
2026-06-03 15:00:02 +03:00
-
554c1730a3
perf(enrich): параллельная обработка очереди (3 трека) — быстрее покрывать живой набор
nk
2026-06-03 14:49:25 +03:00
-
bb74d631c1
feat(enrich): крон — гарантировать обложку играющим сейчас трекам
nk
2026-06-03 14:39:13 +03:00
-
916fc301e4
feat(enrich): обложки через iTunes Search + приоритет играющим трекам
nk
2026-06-03 14:33:52 +03:00
-
96fabac7f5
fix(now-playing): резолвить обложку трека на чтении /now-playing
nk
2026-06-03 14:20:41 +03:00
-
f379110975
feat(now-playing): DFM и др. ICY-станции — обложки + чарты + ротация
nk
2026-06-03 14:08:07 +03:00
-
149421740f
perf(enrich): ускорить бэкафилл (батч 240 каждые 5 мин, ~50 треков/мин)
nk
2026-06-03 13:43:19 +03:00
-
0efba7c691
feat(enrich): обогащение треков через Discogs + самохостинг обложек (WebP)
nk
2026-06-03 13:28:08 +03:00
-
24ed44e8ab
feat(now-playing): добавить name станции в ответ (для матча обложек на клиенте)
nk
2026-06-03 12:10:04 +03:00
-
df20e0fac6
feat(now-playing): REST GET /now-playing (ключ — id станции каталога)
nk
2026-06-03 10:51:49 +03:00
-
e0990540b9
fix(charts): отсекать джинглы/шоу/названия станций из сбора чартов
nk
2026-06-03 10:38:05 +03:00
-
38fe92d695
feat(charts): сбор статистики проигрываний и API чартов
feat/charts
nk
2026-06-02 23:40:13 +03:00
-
bbfec76a7b
fix: use Node.js http module for reliable ICY parsing
nk
2026-06-02 20:19:21 +03:00
-
d0874ae9db
fix: parallel ICY polling with batch size 10 and 5s timeout
nk
2026-06-02 20:15:15 +03:00
-
6b2e02f6c0
chore: warn on ICY errors for debugging
nk
2026-06-02 20:11:35 +03:00
-
0dee9d56b7
chore: add ICY poll logs
nk
2026-06-02 20:08:17 +03:00
-
1b0c59264f
feat: ICY metadata fallback for non-Record stations
nk
2026-06-02 20:03:25 +03:00
-
09211dceb5
fix: broadcast stationId as int for Android mapping
nk
2026-06-02 19:52:33 +03:00
-
d082a1ce07
chore: add debug logs to now-playing polling
nk
2026-06-02 19:40:19 +03:00
-
7823b17d55
feat: now-playing polling from Record API with station mapping and WebSocket broadcast
nk
2026-06-02 19:31:48 +03:00
-
2ae682fb68
fix: use LOGIN auth method for SMTP (mailcow compatibility)
nk
2026-06-02 14:15:39 +03:00
-
8aadd62e3c
feat: bootstrap NestJS backend with auth, stations, users, health-check, now-playing
nk
2026-06-02 13:54:00 +03:00