feat: add config & logic to have dynamic rich presence activity name

This commit is contained in:
Daniel Stefani
2026-02-08 15:36:21 +01:00
parent 24c4c36651
commit 81965083b2
+24 -3
View File
@@ -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,