From 81965083b2a2efe407426c4b0df9c17e93573d43 Mon Sep 17 00:00:00 2001 From: Daniel Stefani Date: Sun, 8 Feb 2026 15:36:21 +0100 Subject: [PATCH] feat: add config & logic to have dynamic rich presence activity name --- main.go | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index 4813ace..ca8aa44 100644 --- a/main.go +++ b/main.go @@ -25,8 +25,17 @@ import ( // Configuration keys const ( - clientIDKey = "clientid" - usersKey = "users" + clientIDKey = "clientid" + usersKey = "users" + activityNameKey = "activityname" +) + +// Activity name display options +const ( + activityNameDefault = "default" + activityNameTitle = "title" + activityNameArtist = "artist" + activityNameAlbum = "album" ) // userToken represents a user-token mapping from the config @@ -136,10 +145,22 @@ func (p *discordPlugin) NowPlaying(input scrobbler.NowPlayingRequest) error { startTime := (now - int64(input.Position)) * 1000 endTime := startTime + int64(input.Track.Duration)*1000 + // Resolve the activity name based on configuration + activityName := "Navidrome" + activityNameOption, _ := pdk.GetConfig(activityNameKey) + switch activityNameOption { + case activityNameTitle: + activityName = input.Track.Title + case activityNameArtist: + activityName = input.Track.Artist + case activityNameAlbum: + activityName = input.Track.Album + } + // Send activity update if err := rpc.sendActivity(clientID, input.Username, userToken, activity{ Application: clientID, - Name: "Navidrome", + Name: activityName, Type: 2, // Listening Details: input.Track.Title, State: input.Track.Artist,