Optimize playlist cover generation

This commit is contained in:
Deluan
2023-01-13 21:33:49 -05:00
committed by Deluan Quintão
parent c46a2a5f5f
commit 16c869ec86
5 changed files with 42 additions and 28 deletions
+16 -2
View File
@@ -16,7 +16,7 @@ type playlistTrackRepository struct {
playlistRepo *playlistRepository
}
func (r *playlistRepository) Tracks(playlistId string) model.PlaylistTrackRepository {
func (r *playlistRepository) Tracks(playlistId string, refreshSmartPlaylist bool) model.PlaylistTrackRepository {
p := &playlistTrackRepository{}
p.playlistRepo = r
p.playlistId = playlistId
@@ -30,7 +30,9 @@ func (r *playlistRepository) Tracks(playlistId string) model.PlaylistTrackReposi
if err != nil {
return nil
}
r.refreshSmartPlaylist(pls)
if refreshSmartPlaylist {
r.refreshSmartPlaylist(pls)
}
p.playlist = pls
return p
}
@@ -70,6 +72,18 @@ func (r *playlistTrackRepository) GetAll(options ...model.QueryOptions) (model.P
return tracks, err
}
func (r *playlistTrackRepository) GetAlbumIDs(options ...model.QueryOptions) ([]string, error) {
sql := r.newSelect(options...).Columns("distinct mf.album_id").
Join("media_file mf on mf.id = media_file_id").
Where(Eq{"playlist_id": r.playlistId})
var ids []string
err := r.queryAll(sql, &ids)
if err != nil {
return nil, err
}
return ids, nil
}
func (r *playlistTrackRepository) ReadAll(options ...rest.QueryOptions) (interface{}, error) {
return r.GetAll(r.parseRestOptions(options...))
}