refactor sub contructors
This commit is contained in:
@@ -7,12 +7,23 @@ import (
|
||||
"github.com/sentriz/gonic/server/subsonic"
|
||||
)
|
||||
|
||||
func makeChildFromFolder(f *model.Album, parent *model.Album) *subsonic.Track {
|
||||
child := &subsonic.Track{
|
||||
ID: f.ID,
|
||||
func newAlbumByFolder(f *model.Album) *subsonic.Album {
|
||||
return &subsonic.Album{
|
||||
Artist: f.Parent.RightPath,
|
||||
CoverID: f.ID,
|
||||
ID: f.ID,
|
||||
IsDir: true,
|
||||
ParentID: f.ParentID,
|
||||
Title: f.RightPath,
|
||||
}
|
||||
}
|
||||
|
||||
func newTCAlbumByFolder(f *model.Album, parent *model.Album) *subsonic.TrackChild {
|
||||
child := &subsonic.TrackChild{
|
||||
CoverID: f.ID,
|
||||
Title: f.RightPath,
|
||||
ID: f.ID,
|
||||
IsDir: true,
|
||||
Title: f.RightPath,
|
||||
}
|
||||
if parent != nil {
|
||||
child.ParentID = parent.ID
|
||||
@@ -20,8 +31,8 @@ func makeChildFromFolder(f *model.Album, parent *model.Album) *subsonic.Track {
|
||||
return child
|
||||
}
|
||||
|
||||
func makeChildFromTrack(t *model.Track, parent *model.Album) *subsonic.Track {
|
||||
return &subsonic.Track{
|
||||
func newTCTrackByFolder(t *model.Track, parent *model.Album) *subsonic.TrackChild {
|
||||
return &subsonic.TrackChild{
|
||||
ID: t.ID,
|
||||
Album: t.Album.RightPath,
|
||||
ContentType: t.MIME(),
|
||||
@@ -43,25 +54,14 @@ func makeChildFromTrack(t *model.Track, parent *model.Album) *subsonic.Track {
|
||||
}
|
||||
}
|
||||
|
||||
func makeAlbumFromFolder(f *model.Album) *subsonic.Album {
|
||||
return &subsonic.Album{
|
||||
ID: f.ID,
|
||||
Title: f.RightPath,
|
||||
CoverID: f.ID,
|
||||
ParentID: f.ParentID,
|
||||
Artist: f.Parent.RightPath,
|
||||
IsDir: true,
|
||||
}
|
||||
}
|
||||
|
||||
func makeArtistFromFolder(f *model.Album) *subsonic.Artist {
|
||||
func newArtistByFolder(f *model.Album) *subsonic.Artist {
|
||||
return &subsonic.Artist{
|
||||
ID: f.ID,
|
||||
Name: f.RightPath,
|
||||
}
|
||||
}
|
||||
|
||||
func makeDirFromFolder(f *model.Album, children []*subsonic.Track) *subsonic.Directory {
|
||||
func newDirectoryByFolder(f *model.Album, children []*subsonic.TrackChild) *subsonic.Directory {
|
||||
return &subsonic.Directory{
|
||||
ID: f.ID,
|
||||
Parent: f.ParentID,
|
||||
|
||||
@@ -7,12 +7,12 @@ import (
|
||||
"github.com/sentriz/gonic/server/subsonic"
|
||||
)
|
||||
|
||||
func makeAlbumFromAlbum(a *model.Album, artist *model.Artist) *subsonic.Album {
|
||||
func newAlbumByTags(a *model.Album, artist *model.Artist) *subsonic.Album {
|
||||
ret := &subsonic.Album{
|
||||
CoverID: a.ID,
|
||||
Created: a.CreatedAt,
|
||||
ID: a.ID,
|
||||
Name: a.TagTitle,
|
||||
Created: a.CreatedAt,
|
||||
CoverID: a.ID,
|
||||
}
|
||||
if artist != nil {
|
||||
ret.Artist = artist.Name
|
||||
@@ -21,8 +21,8 @@ func makeAlbumFromAlbum(a *model.Album, artist *model.Artist) *subsonic.Album {
|
||||
return ret
|
||||
}
|
||||
|
||||
func makeTrackFromTrack(t *model.Track, album *model.Album) *subsonic.Track {
|
||||
return &subsonic.Track{
|
||||
func newTrackByTags(t *model.Track, album *model.Album) *subsonic.TrackChild {
|
||||
return &subsonic.TrackChild{
|
||||
ID: t.ID,
|
||||
ContentType: t.MIME(),
|
||||
Suffix: t.Ext(),
|
||||
@@ -45,7 +45,7 @@ func makeTrackFromTrack(t *model.Track, album *model.Album) *subsonic.Track {
|
||||
}
|
||||
}
|
||||
|
||||
func makeArtistFromArtist(a *model.Artist) *subsonic.Artist {
|
||||
func newArtistByTags(a *model.Artist) *subsonic.Artist {
|
||||
return &subsonic.Artist{
|
||||
ID: a.ID,
|
||||
Name: a.Name,
|
||||
|
||||
@@ -37,7 +37,7 @@ func (c *Controller) GetIndexes(w http.ResponseWriter, r *http.Request) {
|
||||
indexes = append(indexes, index)
|
||||
}
|
||||
index.Artists = append(index.Artists,
|
||||
makeArtistFromFolder(folder))
|
||||
newArtistByFolder(folder))
|
||||
}
|
||||
sort.Slice(indexes, func(i, j int) bool {
|
||||
return indexes[i].Name < indexes[j].Name
|
||||
@@ -56,7 +56,7 @@ func (c *Controller) GetMusicDirectory(w http.ResponseWriter, r *http.Request) {
|
||||
respondError(w, r, 10, "please provide an `id` parameter")
|
||||
return
|
||||
}
|
||||
childrenObj := []*subsonic.Track{}
|
||||
childrenObj := []*subsonic.TrackChild{}
|
||||
folder := &model.Album{}
|
||||
c.DB.First(folder, id)
|
||||
//
|
||||
@@ -67,7 +67,7 @@ func (c *Controller) GetMusicDirectory(w http.ResponseWriter, r *http.Request) {
|
||||
Find(&childFolders)
|
||||
for _, c := range childFolders {
|
||||
childrenObj = append(childrenObj,
|
||||
makeChildFromFolder(c, folder))
|
||||
newTCAlbumByFolder(c, folder))
|
||||
}
|
||||
//
|
||||
// start looking for child childTracks in the current dir
|
||||
@@ -78,7 +78,7 @@ func (c *Controller) GetMusicDirectory(w http.ResponseWriter, r *http.Request) {
|
||||
Order("filename").
|
||||
Find(&childTracks)
|
||||
for _, c := range childTracks {
|
||||
toAppend := makeChildFromTrack(c, folder)
|
||||
toAppend := newTCTrackByFolder(c, folder)
|
||||
if getStrParam(r, "c") == "Jamstash" {
|
||||
// jamstash thinks it can't play flacs
|
||||
toAppend.ContentType = "audio/mpeg"
|
||||
@@ -89,7 +89,7 @@ func (c *Controller) GetMusicDirectory(w http.ResponseWriter, r *http.Request) {
|
||||
//
|
||||
// respond section
|
||||
sub := subsonic.NewResponse()
|
||||
sub.Directory = makeDirFromFolder(folder, childrenObj)
|
||||
sub.Directory = newDirectoryByFolder(folder, childrenObj)
|
||||
respond(w, r, sub)
|
||||
}
|
||||
|
||||
@@ -144,7 +144,7 @@ func (c *Controller) GetAlbumList(w http.ResponseWriter, r *http.Request) {
|
||||
sub.Albums = &subsonic.Albums{}
|
||||
for _, folder := range folders {
|
||||
sub.Albums.List = append(sub.Albums.List,
|
||||
makeAlbumFromFolder(folder))
|
||||
newAlbumByFolder(folder))
|
||||
}
|
||||
respond(w, r, sub)
|
||||
}
|
||||
@@ -168,7 +168,7 @@ func (c *Controller) SearchTwo(w http.ResponseWriter, r *http.Request) {
|
||||
Find(&artists)
|
||||
for _, a := range artists {
|
||||
results.Artists = append(results.Artists,
|
||||
makeDirFromFolder(a, nil))
|
||||
newDirectoryByFolder(a, nil))
|
||||
}
|
||||
//
|
||||
// search "albums"
|
||||
@@ -181,7 +181,7 @@ func (c *Controller) SearchTwo(w http.ResponseWriter, r *http.Request) {
|
||||
Find(&albums)
|
||||
for _, a := range albums {
|
||||
results.Albums = append(results.Albums,
|
||||
makeChildFromFolder(a, a.Parent))
|
||||
newTCAlbumByFolder(a, a.Parent))
|
||||
}
|
||||
//
|
||||
// search tracks
|
||||
@@ -194,7 +194,7 @@ func (c *Controller) SearchTwo(w http.ResponseWriter, r *http.Request) {
|
||||
Find(&tracks)
|
||||
for _, t := range tracks {
|
||||
results.Tracks = append(results.Tracks,
|
||||
makeChildFromTrack(t, t.Album))
|
||||
newTCTrackByFolder(t, t.Album))
|
||||
}
|
||||
//
|
||||
sub := subsonic.NewResponse()
|
||||
|
||||
@@ -29,7 +29,7 @@ func (c *Controller) GetArtists(w http.ResponseWriter, r *http.Request) {
|
||||
indexes.List = append(indexes.List, index)
|
||||
}
|
||||
index.Artists = append(index.Artists,
|
||||
makeArtistFromArtist(artist))
|
||||
newArtistByTags(artist))
|
||||
}
|
||||
sort.Slice(indexes.List, func(i, j int) bool {
|
||||
return indexes.List[i].Name < indexes.List[j].Name
|
||||
@@ -50,10 +50,10 @@ func (c *Controller) GetArtist(w http.ResponseWriter, r *http.Request) {
|
||||
Preload("Albums").
|
||||
First(artist, id)
|
||||
sub := subsonic.NewResponse()
|
||||
sub.Artist = makeArtistFromArtist(artist)
|
||||
sub.Artist = newArtistByTags(artist)
|
||||
for _, album := range artist.Albums {
|
||||
sub.Artist.Albums = append(sub.Artist.Albums,
|
||||
makeAlbumFromAlbum(album, artist))
|
||||
newAlbumByTags(album, artist))
|
||||
}
|
||||
respond(w, r, sub)
|
||||
}
|
||||
@@ -77,10 +77,10 @@ func (c *Controller) GetAlbum(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
sub := subsonic.NewResponse()
|
||||
sub.Album = makeAlbumFromAlbum(album, album.TagArtist)
|
||||
sub.Album = newAlbumByTags(album, album.TagArtist)
|
||||
for _, track := range album.Tracks {
|
||||
sub.Album.Tracks = append(sub.Album.Tracks,
|
||||
makeTrackFromTrack(track, album))
|
||||
newTrackByTags(track, album))
|
||||
}
|
||||
respond(w, r, sub)
|
||||
}
|
||||
@@ -142,7 +142,7 @@ func (c *Controller) GetAlbumListTwo(w http.ResponseWriter, r *http.Request) {
|
||||
sub.AlbumsTwo = &subsonic.Albums{}
|
||||
for _, album := range albums {
|
||||
sub.AlbumsTwo.List = append(sub.AlbumsTwo.List,
|
||||
makeAlbumFromAlbum(album, album.TagArtist))
|
||||
newAlbumByTags(album, album.TagArtist))
|
||||
}
|
||||
respond(w, r, sub)
|
||||
}
|
||||
@@ -166,7 +166,7 @@ func (c *Controller) SearchThree(w http.ResponseWriter, r *http.Request) {
|
||||
Find(&artists)
|
||||
for _, a := range artists {
|
||||
results.Artists = append(results.Artists,
|
||||
makeArtistFromArtist(a))
|
||||
newArtistByTags(a))
|
||||
}
|
||||
//
|
||||
// search "albums"
|
||||
@@ -179,7 +179,7 @@ func (c *Controller) SearchThree(w http.ResponseWriter, r *http.Request) {
|
||||
Find(&albums)
|
||||
for _, a := range albums {
|
||||
results.Albums = append(results.Albums,
|
||||
makeAlbumFromAlbum(a, a.TagArtist))
|
||||
newAlbumByTags(a, a.TagArtist))
|
||||
}
|
||||
//
|
||||
// search tracks
|
||||
@@ -192,7 +192,7 @@ func (c *Controller) SearchThree(w http.ResponseWriter, r *http.Request) {
|
||||
Find(&tracks)
|
||||
for _, t := range tracks {
|
||||
results.Tracks = append(results.Tracks,
|
||||
makeTrackFromTrack(t, t.Album))
|
||||
newTrackByTags(t, t.Album))
|
||||
}
|
||||
sub := subsonic.NewResponse()
|
||||
sub.SearchResultThree = results
|
||||
|
||||
Reference in New Issue
Block a user