patch navidrome last.fm artist to always be albumartist

This commit is contained in:
xunuwu 2025-05-13 11:17:21 +02:00
parent 526c574e42
commit bdde47425b
3 changed files with 33 additions and 2 deletions

View file

@ -9,7 +9,7 @@
./homepage.nix
./jellyfin.nix
./minecraft.nix
./navidrome.nix
./navidrome
./prometheus.nix
./restic.nix
./samba.nix

View file

@ -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";

View file

@ -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))