From 04add15691578316ff3da5b5a07d05b314488370 Mon Sep 17 00:00:00 2001 From: salmonik Date: Sat, 16 May 2026 11:43:32 +0200 Subject: Add scrobbling support (Last.fm + ListenBrainz) and rsp settings reload MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Full Last.fm API implementation with MD5 signing (track.updateNowPlaying, track.scrobble) - Full ListenBrainz API implementation (/1/submit-listens for playing_now and single) - ScrobbleState in daemon tracking track, start time, and unix timestamp per play - Scrobble threshold: ≥30s play AND (≥half duration OR ≥4 min) - Duration extraction from symphonia codec params into AudioMetadata and Track - Token validation at daemon startup and on config change - ListenBrainz token valid (user: Salmonium) command to re-read config from disk (avoids token in shell history) - Desktop notifications for token validation results - Empty-credential filtering (empty string = no-op) --- tests/queue.rs | 2 ++ 1 file changed, 2 insertions(+) (limited to 'tests/queue.rs') diff --git a/tests/queue.rs b/tests/queue.rs index a73c312..ccc6e54 100644 --- a/tests/queue.rs +++ b/tests/queue.rs @@ -7,6 +7,7 @@ fn track(path: &str, title: Option<&str>, artist: Option<&str>, album: Option<&s title: title.map(|s| s.to_string()), artist: artist.map(|s| s.to_string()), album: album.map(|s| s.to_string()), + duration_secs: None, } } @@ -16,6 +17,7 @@ fn track_no_meta(path: &str) -> Track { title: None, artist: None, album: None, + duration_secs: None, } } -- cgit v1.2.3