Skip to content

Commit 95d9261

Browse files
committed
improve song search
1 parent c822620 commit 95d9261

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

src/client/emby.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ func (c *Emby) RefreshLibrary() error {
122122

123123
func (c *Emby) SearchSongs(tracks []*models.Track) error {
124124
for _, track := range tracks {
125-
reqParam := fmt.Sprintf("/Items?IncludeMediaTypes=Audio&SearchTerm=%s&Recursive=true", url.QueryEscape(track.CleanTitle))
125+
reqParam := fmt.Sprintf("/Items?IncludeMediaTypes=Audio&SearchTerm=%s&Recursive=true&Fields=Path", url.QueryEscape(track.CleanTitle))
126126

127127
body, err := c.HttpClient.MakeRequest("GET", c.Cfg.URL+reqParam, nil, c.Cfg.Creds.Headers)
128128
if err != nil {
@@ -135,7 +135,7 @@ func (c *Emby) SearchSongs(tracks []*models.Track) error {
135135
}
136136

137137
for _, item := range results.Items {
138-
if track.MainArtist == item.AlbumArtist && item.Name == track.CleanTitle {
138+
if track.MainArtist == item.AlbumArtist && (item.Name == track.CleanTitle || strings.Contains(item.Path, track.File)) {
139139
track.ID = item.ID
140140
track.Present = true
141141
break

src/client/jellyfin.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"encoding/json"
66
"fmt"
77
"net/url"
8+
"strings"
89

910
"explo/src/config"
1011
"explo/src/debug"
@@ -129,7 +130,7 @@ func (c *Jellyfin) RefreshLibrary() error {
129130

130131
func (c *Jellyfin) SearchSongs(tracks []*models.Track) error {
131132
for _, track := range tracks {
132-
queryParams := fmt.Sprintf("/Items?parentId=%s&mediaTypes=Audio&searchTerm=%s&recursive=true", c.LibraryID, url.QueryEscape(track.CleanTitle))
133+
queryParams := fmt.Sprintf("/Items?parentId=%s&mediaTypes=Audio&searchTerm=%s&recursive=true&Fields=Path", c.LibraryID, url.QueryEscape(track.CleanTitle))
133134

134135
body, err := c.HttpClient.MakeRequest("GET", c.Cfg.URL+queryParams, nil, c.Cfg.Creds.Headers)
135136
if err != nil {
@@ -142,7 +143,7 @@ func (c *Jellyfin) SearchSongs(tracks []*models.Track) error {
142143
}
143144

144145
for _, item := range results.Items {
145-
if track.MainArtist == item.AlbumArtist && item.Name == track.CleanTitle {
146+
if track.MainArtist == item.AlbumArtist && (item.Name == track.CleanTitle || strings.Contains(item.Path, track.File)) {
146147
track.ID = item.ID
147148
track.Present = true
148149
break

0 commit comments

Comments
 (0)