@@ -82,6 +82,7 @@ func (c *Controller) ServeGetMusicDirectory(r *http.Request) *spec.Response {
|
|||||||
c.DB.
|
c.DB.
|
||||||
Where("album_id=?", id.Value).
|
Where("album_id=?", id.Value).
|
||||||
Preload("Album").
|
Preload("Album").
|
||||||
|
Preload("Album.TagArtist").
|
||||||
Order("filename").
|
Order("filename").
|
||||||
Find(&childTracks)
|
Find(&childTracks)
|
||||||
for _, c := range childTracks {
|
for _, c := range childTracks {
|
||||||
|
|||||||
@@ -343,6 +343,7 @@ func (c *Controller) ServeGetSongsByGenre(r *http.Request) *spec.Response {
|
|||||||
Joins("JOIN track_genres ON track_genres.track_id=tracks.id").
|
Joins("JOIN track_genres ON track_genres.track_id=tracks.id").
|
||||||
Joins("JOIN genres ON track_genres.genre_id=genres.id AND genres.name=?", genre).
|
Joins("JOIN genres ON track_genres.genre_id=genres.id AND genres.name=?", genre).
|
||||||
Preload("Album").
|
Preload("Album").
|
||||||
|
Preload("Album.TagArtist").
|
||||||
Offset(params.GetOrInt("offset", 0)).
|
Offset(params.GetOrInt("offset", 0)).
|
||||||
Limit(params.GetOrInt("count", 10))
|
Limit(params.GetOrInt("count", 10))
|
||||||
if m := c.getMusicFolder(params); m != "" {
|
if m := c.getMusicFolder(params); m != "" {
|
||||||
|
|||||||
@@ -188,6 +188,7 @@ func (c *Controller) ServeGetSong(r *http.Request) *spec.Response {
|
|||||||
err = c.DB.
|
err = c.DB.
|
||||||
Where("id=?", id.Value).
|
Where("id=?", id.Value).
|
||||||
Preload("Album").
|
Preload("Album").
|
||||||
|
Preload("Album.TagArtist").
|
||||||
First(track).
|
First(track).
|
||||||
Error
|
Error
|
||||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||||
@@ -204,6 +205,7 @@ func (c *Controller) ServeGetRandomSongs(r *http.Request) *spec.Response {
|
|||||||
q := c.DB.DB.
|
q := c.DB.DB.
|
||||||
Limit(params.GetOrInt("size", 10)).
|
Limit(params.GetOrInt("size", 10)).
|
||||||
Preload("Album").
|
Preload("Album").
|
||||||
|
Preload("Album.TagArtist").
|
||||||
Joins("JOIN albums ON tracks.album_id=albums.id").
|
Joins("JOIN albums ON tracks.album_id=albums.id").
|
||||||
Order(gorm.Expr("random()"))
|
Order(gorm.Expr("random()"))
|
||||||
if year, err := params.GetInt("fromYear"); err == nil {
|
if year, err := params.GetInt("fromYear"); err == nil {
|
||||||
@@ -219,7 +221,9 @@ func (c *Controller) ServeGetRandomSongs(r *http.Request) *spec.Response {
|
|||||||
if m := c.getMusicFolder(params); m != "" {
|
if m := c.getMusicFolder(params); m != "" {
|
||||||
q = q.Where("albums.root_dir=?", m)
|
q = q.Where("albums.root_dir=?", m)
|
||||||
}
|
}
|
||||||
q.Find(&tracks)
|
if err := q.Find(&tracks).Error; err != nil {
|
||||||
|
return spec.NewError(10, "get random songs: %v", err)
|
||||||
|
}
|
||||||
sub := spec.NewResponse()
|
sub := spec.NewResponse()
|
||||||
sub.RandomTracks = &spec.RandomTracks{}
|
sub.RandomTracks = &spec.RandomTracks{}
|
||||||
sub.RandomTracks.List = make([]*spec.TrackChild, len(tracks))
|
sub.RandomTracks.List = make([]*spec.TrackChild, len(tracks))
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ func playlistRender(c *Controller, playlist *db.Playlist) *spec.Playlist {
|
|||||||
err := c.DB.
|
err := c.DB.
|
||||||
Where("id=?", id).
|
Where("id=?", id).
|
||||||
Preload("Album").
|
Preload("Album").
|
||||||
|
Preload("Album.TagArtist").
|
||||||
Find(&track).
|
Find(&track).
|
||||||
Error
|
Error
|
||||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||||
|
|||||||
Reference in New Issue
Block a user