Rättelse per Björn: tredje förslags-typen ska vara genrer, inte sångare.
Gemini föreslår genrer utifrån artisterna i gillat/spelat; varje genre
får 5 toppartister (filtrerade mot biblioteket, Hämta-knapp i modalen)
och 5 topplåtar (filtrerade mot gillalistan, YT-länkar). Genrekortet
lånar första toppartistens omslag. Gamla sångar-batcher renderas
fortfarande. DetailModal generaliserad.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01824ZrvG2mDYYrmwqypLNup
- Ny batch-typ 'singers': baseras på de 10 senaste unika sångarna ur
gillat (YT Music) + spelat (Jellyfin); Gemini ger per sångare 5
topplåtar + 3 relaterade artister, filtrerade mot Lidarr-biblioteket
och gillalistan; klick på kortet öppnar modal med YT-länkar och
Hämta-knappar
- Förslags-scheman per typ: intervall med enhet (timmar/dagar/månader),
antal förslag (1-25) och källo-toggles; gamla intervalHours/
trackIntervalDays migreras automatiskt; schemaläggaren kör alla tre
- Inställningar: Förslag-kortet omgjort till hopfällbara sektioner per
typ (details/summary) så det inte blir överväldigande
- ytmusic: tydligt fel om oauth.json inte kan skrivas (root-ägd mapp
var orsaken till 'inte kopplad än' — ägarskap fixat på Pi5)
- 28 tester gröna
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01824ZrvG2mDYYrmwqypLNup
- MusicCard: ▶ YT-knapp öppnar music.youtube.com-sökning på artist/låt/album
- Låtförslag: egen batch-typ 'tracks' — signaler: 10 senast gillade
(Liked Music-listan i Youtubarr-DB, fallback senaste tillägg) + 10 mest
spelade i Jellyfin (SortBy=PlayCount); egen Gemini-prompt för enskilda
låtar; berikas med artist-MBID så Hämta lägger in artisten i Lidarr
- Upptäck: egen 'Veckans låtar'-ruta med senaste 10 + generera-knapp
- Schema: trackIntervalDays (default 7, 0 = av) i inställningarna,
schemaläggaren kör båda typerna oberoende
- Förslag-sidan märker batcher med typ; 26 tester gröna
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01824ZrvG2mDYYrmwqypLNup
- suggest.js: samlar signaler (Lidarr-bibliotek, Jellyfin senast spelat,
Youtubarr-DB senast tillagt/gillat via better-sqlite3 ro), bygger svensk
Gemini-prompt (JSON-svar), berikar förslagen med MBID/omslag via Lidarrs
metadata-API, cachar batcher i /data/suggestions.json
- API: POST /api/suggest/run, GET latest (10 senaste till Upptäck),
GET batches + batches/:id (bläddring)
- Schemaläggare i server.js: kollar var 10:e minut mot inställningen
suggest.intervalHours (default 24, 0 = av) — ställs in under ⚙
- Upptäck: senaste 10 som kort med motivering + '✨ Generera nya förslag';
ny Förslag-sida bläddrar alla cachade batcher; delat MusicCard-kort
(sök + förslag) med Hämta-knapp
- Dockerfile: byggverktyg för better-sqlite3; 4 nya tester, totalt 25
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01824ZrvG2mDYYrmwqypLNup