feat: configurable scrobble timing (15s / 30s / 1/3 / 2/3 / end)

Settings dropdown: 15s (default), 30s, 1/3 of duration, 2/3 of duration, song end.
Duration-based modes use s.duration from Navidrome metadata (always available).
'end' mode skips the timer and fires the scrobble in onEnded (web) / onQueueEnded (native).
Skipping a song never scrobbles in any mode — _cancelScrobble() still runs on skip/pause.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
HoneyandClaude Sonnet 4.6 committed 2026-06-07 17:53:02 +02:00
1 parent acb15d8c00
commit 6391857fda
3 files changed
+33 -6

No files matched your search

+10
View File
@@ -661,6 +661,16 @@
<span>Romaji anzeigen</span>
<div id="s-show-romaji" class="toggle" onclick="this.classList.toggle('on')"></div>
</div>
<div class="edit-pl-toggle-row" style="margin-top:12px">
<span>Scrobble senden nach</span>
<select id="s-scrobble-mode" style="background:var(--surface2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:6px 10px;font-family:var(--font);font-size:13px;cursor:pointer">
<option value="15s">15 Sekunden</option>
<option value="30s">30 Sekunden</option>
<option value="1/3">1/3 der Song-Dauer</option>
<option value="2/3">2/3 der Song-Dauer</option>
<option value="end">Song-Ende</option>
</select>
</div>
</div>
<div class="settings-section">
<div style="display:flex;align-items:center;justify-content:space-between">