feat(wave-v2): add LLM reranking, mood modes, auto-rotation scheduler and Navidrome auth

This commit is contained in:
Antigravity committed 2026-10-12 15:29:43 +03:00
1 parent 3b3d591bfd
commit fb1a5e01dd
11 files changed
+736 -37

No files matched your search

+10 -3
View File
@@ -22,17 +22,22 @@
- Определение цензуры: бейджи `🔞 18+ Explicit` (без цензуры) и `⚠️ Clean` (зацензуренная версия).
- Встроенный аудиоплеер предпрослушивания с возможностью перемотки на лету (**HTTP Range 206**).
- Прямое скачивание в браузер или добавление в очередь сервера в 1 клик.
- **🌊 Моя Волна (Smart Wave V1)**:
- **🔐 Защита & Авторизация через Navidrome**:
- Панель синхронизации защищена авторизацией. Для входа используются те же имя пользователя и пароль, что и в Navidrome.
- Сессионные токены HMAC (30 дней) для браузера и поддержка HTTP Basic Auth для API / автоматизации.
- **🌊 Моя Волна (Smart Wave V2)**:
- Автономный генератор персональных рекомендаций на основе профиля вкусов (звёздочки, скробблы, топ артистов из `navidrome.db`).
- **Контекстный LLM-реранкер**: локальная Ollama (`qwen2.5:1.5b` с `keep_alive: 0`, 0 МБ RAM в простое) анализирует расширенный пул кандидатов и отбирает треки под время суток (*утро / день / вечер / ночь*) или выбранное настроение (*Энергия*, *Чилл*, *Андеграунд*).
- Скользящий буфер на 25 треков в `/music/AI Recommendations/Моя Волна/` (~180 МБ).
- **Авто-ротация**: если трек лайкнут в Navidrome — переносится в основную библиотеку навсегда; если лежит более 7 дней без лайка — автоматически удаляется.
- **Фоновое расписание**: автоматическая ротация и пополнение буфера каждые 6 часов.
- Автоматическая генерация умного плейлиста `Моя Волна.nsp` и `Моя Волна.m3u8` для всех Subsonic клиентов.
- **Интеграция с Navidrome**:
- Организация каталога по стандарту: `/music/{Artist}/{Album}/{Track_Number} - {Title}.mp3`.
- Автоматическое скачивание построчных караоке-текстов (`.lrc`).
- Уведомление Navidrome через Subsonic API (`startScan`) сразу после завершения загрузки.
- **Веб-интерфейс & REST API**:
- Адаптивный темный Web UI с прогресс-баром задач и историей загрузок.
- Адаптивный темный Web UI с прогресс-баром задач, переключателем настроения Волны и историей загрузок.
- Фоновый асинхронный воркер без блокировки интерфейса.
- Дедупликация (не скачивает повторно треки, которые уже есть в библиотеке).
@@ -57,7 +62,9 @@ docker compose up -d --build
## 🔌 API Эндпоинты
- `GET /` — Веб-интерфейс управления.
- `GET /` — Веб-интерфейс управления (требуется авторизация).
- `GET /login` / `POST /login` — Страница и эндпоинт авторизации (валидация через Navidrome).
- `GET /logout` / `POST /logout` — Завершение сессии.
- `GET /api/search?q={query}` — Сквозной поиск по всем платформам с ранжированием.
- `GET /api/stream?url={url}` — Аудио-стриминг для плеера с поддержкой Range-запросов и перемотки.
- `GET /api/direct-download?url={url}` — Прямая отдача файла в браузер.