feat: add configuration option to select Activity Name based on currently playing track (#11)

This commit is contained in:
Daniel Stefani
2026-02-08 18:50:20 +01:00
committed by GitHub
parent 24c4c36651
commit 6b5ca1a54f
4 changed files with 110 additions and 3 deletions

27
main.go
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"
activityNameTrack = "Track"
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 activityNameTrack:
activityName = input.Track.Title
case activityNameAlbum:
activityName = input.Track.Album
case activityNameArtist:
activityName = input.Track.Artist
}
// 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,