simplify onSearched
This commit is contained in:
@@ -18,7 +18,7 @@ type SelectPlaylist struct {
|
|||||||
SearchDialog *SearchDialog
|
SearchDialog *SearchDialog
|
||||||
mp mediaprovider.MediaProvider
|
mp mediaprovider.MediaProvider
|
||||||
loggedInUser string
|
loggedInUser string
|
||||||
allPlaylists []*mediaprovider.Playlist
|
allPlaylistResuts []*mediaprovider.SearchResult
|
||||||
SkipDuplicates bool
|
SkipDuplicates bool
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -47,53 +47,48 @@ func (sp *SelectPlaylist) onInit() ([]*mediaprovider.SearchResult, *widget.Check
|
|||||||
log.Printf("error getting playlists: %s", err.Error())
|
log.Printf("error getting playlists: %s", err.Error())
|
||||||
return results, nil
|
return results, nil
|
||||||
}
|
}
|
||||||
sp.allPlaylists = sharedutil.FilterSlice(playlists, func(playlist *mediaprovider.Playlist) bool {
|
userPlaylists := sharedutil.FilterSlice(playlists, func(playlist *mediaprovider.Playlist) bool {
|
||||||
return playlist.Owner == sp.loggedInUser
|
return playlist.Owner == sp.loggedInUser
|
||||||
})
|
})
|
||||||
for _, playlist := range sp.allPlaylists {
|
sp.allPlaylistResuts = sharedutil.MapSlice(userPlaylists, sp.playlistToSearchResult)
|
||||||
results = append(results, &mediaprovider.SearchResult{
|
|
||||||
Name: playlist.Name,
|
|
||||||
ID: playlist.ID,
|
|
||||||
CoverID: playlist.CoverArtID,
|
|
||||||
Type: mediaprovider.ContentTypePlaylist,
|
|
||||||
Size: playlist.TrackCount,
|
|
||||||
ArtistName: playlist.Name,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
skipDuplicatesCheck := widget.NewCheck("Skip duplicates", func(checked bool) {
|
skipDuplicatesCheck := widget.NewCheck("Skip duplicates", func(checked bool) {
|
||||||
sp.SkipDuplicates = checked
|
sp.SkipDuplicates = checked
|
||||||
})
|
})
|
||||||
return results, skipDuplicatesCheck
|
return results, skipDuplicatesCheck
|
||||||
}
|
}
|
||||||
|
|
||||||
func (sp *SelectPlaylist) onSearched(query string) []*mediaprovider.SearchResult {
|
func (sp *SelectPlaylist) playlistToSearchResult(playlist *mediaprovider.Playlist) *mediaprovider.SearchResult {
|
||||||
var results []*mediaprovider.SearchResult
|
if playlist == nil {
|
||||||
var filteredPlaylists []*mediaprovider.Playlist
|
return nil
|
||||||
if query == "" {
|
|
||||||
filteredPlaylists = sp.allPlaylists
|
|
||||||
} else {
|
|
||||||
filteredPlaylists = sharedutil.FilterSlice(sp.allPlaylists, func(playlist *mediaprovider.Playlist) bool {
|
|
||||||
return strings.Contains(
|
|
||||||
sanitize.Accents(strings.ToLower(playlist.Name)),
|
|
||||||
sanitize.Accents(strings.ToLower(query)),
|
|
||||||
)
|
|
||||||
})
|
|
||||||
results = append(results, &mediaprovider.SearchResult{
|
|
||||||
Name: fmt.Sprintf("Create new playlist: %s", query),
|
|
||||||
Type: mediaprovider.ContentTypePlaylist,
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
return &mediaprovider.SearchResult{
|
||||||
for _, playlist := range filteredPlaylists {
|
|
||||||
results = append(results, &mediaprovider.SearchResult{
|
|
||||||
Name: playlist.Name,
|
Name: playlist.Name,
|
||||||
ID: playlist.ID,
|
ID: playlist.ID,
|
||||||
CoverID: playlist.CoverArtID,
|
CoverID: playlist.CoverArtID,
|
||||||
Type: mediaprovider.ContentTypePlaylist,
|
Type: mediaprovider.ContentTypePlaylist,
|
||||||
Size: playlist.TrackCount,
|
Size: playlist.TrackCount,
|
||||||
ArtistName: playlist.Name,
|
ArtistName: playlist.Name,
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sp *SelectPlaylist) onSearched(query string) []*mediaprovider.SearchResult {
|
||||||
|
var results []*mediaprovider.SearchResult
|
||||||
|
if query == "" {
|
||||||
|
results = sp.allPlaylistResuts
|
||||||
|
} else {
|
||||||
|
results = []*mediaprovider.SearchResult{{
|
||||||
|
Name: fmt.Sprintf("Create new playlist: %s", query),
|
||||||
|
Type: mediaprovider.ContentTypePlaylist,
|
||||||
|
}}
|
||||||
|
filteredPlaylists := sharedutil.FilterSlice(sp.allPlaylistResuts, func(playlist *mediaprovider.SearchResult) bool {
|
||||||
|
return strings.Contains(
|
||||||
|
sanitize.Accents(strings.ToLower(playlist.Name)),
|
||||||
|
sanitize.Accents(strings.ToLower(query)),
|
||||||
|
)
|
||||||
|
})
|
||||||
|
results = append(results, filteredPlaylists...)
|
||||||
|
}
|
||||||
|
|
||||||
return results
|
return results
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user