···
1
+
diff --git a/core/agents/listenbrainz/agent.go b/core/agents/listenbrainz/agent.go
2
+
index 769b0f5..758eb85 100644
3
+
--- a/core/agents/listenbrainz/agent.go
4
+
+++ b/core/agents/listenbrainz/agent.go
5
+
@@ -3,6 +3,7 @@ package listenbrainz
12
+
"github.com/navidrome/navidrome/conf"
13
+
@@ -52,6 +53,10 @@ func (l *listenBrainzAgent) formatListen(track *model.MediaFile) listenInfo {
14
+
artistNames := slice.Map(track.Participants[model.RoleArtist], func(p model.Participant) string {
17
+
+ var originURL string
18
+
+ if v := track.Tags.Values(model.TagSource); len(v) > 0 {
22
+
TrackMetadata: trackMetadata{
23
+
ArtistName: track.Artist,
24
+
@@ -67,9 +72,12 @@ func (l *listenBrainzAgent) formatListen(track *model.MediaFile) listenInfo {
25
+
ReleaseMBID: track.MbzAlbumID,
26
+
ReleaseGroupMBID: track.MbzReleaseGroupID,
27
+
DurationMs: int(track.Duration * 1000),
28
+
+ OriginURL: originURL,
32
+
+ fmt.Printf("listen info: %+v\n", li)
33
+
+ fmt.Printf("track tags: %+v\n", track.Tags)
37
+
diff --git a/core/agents/listenbrainz/agent_test.go b/core/agents/listenbrainz/agent_test.go
38
+
index e99b442..11e7b3c 100644
39
+
--- a/core/agents/listenbrainz/agent_test.go
40
+
+++ b/core/agents/listenbrainz/agent_test.go
41
+
@@ -69,6 +69,7 @@ var _ = Describe("listenBrainzAgent", func() {
42
+
"ArtistNames": ConsistOf("Artist 1", "Artist 2"),
43
+
"ArtistMBIDs": ConsistOf("mbz-111", "mbz-222"),
44
+
"DurationMs": Equal(142200),
45
+
+ "OriginURL": Ignore(),
49
+
diff --git a/core/agents/listenbrainz/client.go b/core/agents/listenbrainz/client.go
50
+
index 168aad5..807bdef 100644
51
+
--- a/core/agents/listenbrainz/client.go
52
+
+++ b/core/agents/listenbrainz/client.go
53
+
@@ -82,6 +82,7 @@ type additionalInfo struct {
54
+
ReleaseMBID string `json:"release_mbid,omitempty"`
55
+
ReleaseGroupMBID string `json:"release_group_mbid,omitempty"`
56
+
DurationMs int `json:"duration_ms,omitempty"`
57
+
+ OriginURL string `json:"origin_url,omitempty"`
60
+
func (c *client) validateToken(ctx context.Context, apiKey string) (*listenBrainzResponse, error) {
61
+
diff --git a/model/tag.go b/model/tag.go
62
+
index 674f688..ecd1a12 100644
65
+
@@ -194,6 +194,7 @@ const (
66
+
TagISRC TagName = "isrc"
67
+
TagBPM TagName = "bpm"
68
+
TagExplicitStatus TagName = "explicitstatus"
69
+
+ TagSource TagName = "source"
73
+
diff --git a/resources/mappings.yaml b/resources/mappings.yaml
74
+
index d1da5c6..905ad01 100644
75
+
--- a/resources/mappings.yaml
76
+
+++ b/resources/mappings.yaml
77
+
@@ -251,6 +251,8 @@ additional:
78
+
aliases: [ txxx:script, script, ----:com.apple.itunes:script, wm/script ]
80
+
aliases: [ tit3, subtitle, ----:com.apple.itunes:subtitle, wm/subtitle ]
82
+
+ aliases: [ source, woas, audio source, txxx:source, ----:com.apple.itunes:source ]
84
+
aliases: [ woar, website, weblink, wm/authorurl ]