Honey and Claude Sonnet 4.6
0f1e6ff531
refactor: remove dead code from backend and lib
...
- Remove unused spotifyClientId/spotifyClientSecret from config
- Remove AUDIO_EXTS from metadata exports (internal-only)
- Remove tryYtdlp wrapper in ytdlp.js (direct spawnYtdlp calls)
- Remove _spArtistName wrapper in server (direct _spAllArtists calls)
- Fix stale comment: primary resolver is SpotipyFree, not curl_cffi
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-12 18:18:50 +02:00
Honey and Claude Sonnet 4.6
468827571a
feat: switch Spotify auth to official Client Credentials Flow
...
Replaces the broken open.spotify.com/get_access_token scrape with
accounts.spotify.com/api/token (Basic auth, client_credentials grant).
Adds SPOTIFY_CLIENT_ID/SECRET to config, docker-compose, and .env.example.
Health endpoint now reports spotify.configured; frontend disables the
importer and shows a setup guide when credentials are missing.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-09 22:57:01 +02:00
Honey and Claude Sonnet 4.6
ac8d26bf9d
feat: split backend into lib/ modules + add squid.wtf (Qobuz) download backend
...
- backend/lib/config.js — CONFIG from env (adds DOWNLOAD_BACKEND, SQUID_QUALITY)
- backend/lib/jobs.js — jobs Map, updateJob(), log()
- backend/lib/metadata.js — iTunes, artwork, lyrics, sanitize helpers
- backend/lib/ytdlp.js — yt-dlp download cascade + shared embedMetadata()
- backend/lib/squid.js — ALTCHA PoW solver, Qobuz search/download via squid.wtf
- backend/lib/downloader.js — backend selector: ytdlp | squid | auto (squid-first + fallback)
- novasonic-server.js thinned to Express routes only, imports from lib/
- docker-compose: mount full backend/ dir, install deps outside read-only volume
- .env.example: document DOWNLOAD_BACKEND and SQUID_QUALITY
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-02 20:44:26 +02:00