diff --git a/sys/machines/hopper/lab/default.nix b/sys/machines/hopper/lab/default.nix index 3b9922b..055ac1e 100644 --- a/sys/machines/hopper/lab/default.nix +++ b/sys/machines/hopper/lab/default.nix @@ -9,7 +9,7 @@ ./homepage.nix ./jellyfin.nix ./minecraft.nix - ./navidrome.nix + ./navidrome ./prometheus.nix ./restic.nix ./samba.nix diff --git a/sys/machines/hopper/lab/navidrome.nix b/sys/machines/hopper/lab/navidrome/default.nix similarity index 77% rename from sys/machines/hopper/lab/navidrome.nix rename to sys/machines/hopper/lab/navidrome/default.nix index 27fc481..55a32a4 100644 --- a/sys/machines/hopper/lab/navidrome.nix +++ b/sys/machines/hopper/lab/navidrome/default.nix @@ -1,7 +1,15 @@ -{config, ...}: { +{ + config, + pkgs, + ... +}: { users.groups.${config.services.navidrome.group}.members = ["caddy"]; # for caddy to access socket file services.navidrome = { enable = true; + package = pkgs.navidrome.overrideAttrs { + patches = [./scrobbleAlbumArtist.patch]; + doCheck = false; + }; settings = { MusicFolder = "/media/library/music"; Address = "unix:/var/lib/navidrome/navidrome.sock"; diff --git a/sys/machines/hopper/lab/navidrome/scrobbleAlbumArtist.patch b/sys/machines/hopper/lab/navidrome/scrobbleAlbumArtist.patch new file mode 100644 index 0000000..a150636 --- /dev/null +++ b/sys/machines/hopper/lab/navidrome/scrobbleAlbumArtist.patch @@ -0,0 +1,23 @@ +diff --git a/core/agents/lastfm/client.go b/core/agents/lastfm/client.go +index 6a24ac80..bbc0aebb 100644 +--- a/core/agents/lastfm/client.go ++++ b/core/agents/lastfm/client.go +@@ -131,7 +131,7 @@ type ScrobbleInfo struct { + func (c *client) updateNowPlaying(ctx context.Context, sessionKey string, info ScrobbleInfo) error { + params := url.Values{} + params.Add("method", "track.updateNowPlaying") +- params.Add("artist", info.artist) ++ params.Add("artist", info.albumArtist) + params.Add("track", info.track) + params.Add("album", info.album) + params.Add("trackNumber", strconv.Itoa(info.trackNumber)) +@@ -154,7 +154,7 @@ func (c *client) scrobble(ctx context.Context, sessionKey string, info ScrobbleI + params := url.Values{} + params.Add("method", "track.scrobble") + params.Add("timestamp", strconv.FormatInt(info.timestamp.Unix(), 10)) +- params.Add("artist", info.artist) ++ params.Add("artist", info.albumArtist) + params.Add("track", info.track) + params.Add("album", info.album) + params.Add("trackNumber", strconv.Itoa(info.trackNumber)) +