Skip to content

Commit 959d9f1

Browse files
committed
fix(subsonic): return averageRating as float
fixes #677
1 parent 9423584 commit 959d9f1

File tree

3 files changed

+12
-19
lines changed

3 files changed

+12
-19
lines changed

server/ctrlsubsonic/spec/construct_by_folder.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ func NewAlbumByFolder(f *db.Album) *Album {
2020
TrackCount: f.ChildCount,
2121
Duration: f.Duration,
2222
Created: f.CreatedAt,
23-
AverageRating: formatRating(f.AverageRating),
23+
AverageRating: f.AverageRating,
2424
ReleaseTypes: []string{},
2525
}
2626
if f.AlbumStar != nil {
@@ -44,7 +44,7 @@ func NewTCAlbumByFolder(f *db.Album) *TrackChild {
4444
Title: f.RightPath,
4545
ParentID: f.ParentSID(),
4646
CreatedAt: f.CreatedAt,
47-
AverageRating: formatRating(f.AverageRating),
47+
AverageRating: f.AverageRating,
4848
Year: f.TagYear,
4949
}
5050
if f.AlbumStar != nil {
@@ -84,7 +84,7 @@ func NewTCTrackByFolder(t *db.Track, parent *db.Album) *TrackChild {
8484
Type: "music",
8585
MusicBrainzID: t.TagBrainzID,
8686
CreatedAt: t.CreatedAt,
87-
AverageRating: formatRating(t.AverageRating),
87+
AverageRating: t.AverageRating,
8888
Year: t.TagYear,
8989
}
9090
if trCh.Title == "" {
@@ -170,7 +170,7 @@ func NewArtistByFolder(f *db.Album) *Artist {
170170
ID: f.SID(),
171171
Name: f.RightPath,
172172
AlbumCount: f.ChildCount,
173-
AverageRating: formatRating(f.AverageRating),
173+
AverageRating: f.AverageRating,
174174
}
175175
if f.AlbumStar != nil {
176176
a.Starred = &f.AlbumStar.StarDate
@@ -192,7 +192,7 @@ func NewDirectoryByFolder(f *db.Album, children []*TrackChild) *Directory {
192192
Name: f.RightPath,
193193
Children: children,
194194
ParentID: f.ParentSID(),
195-
AverageRating: formatRating(f.AverageRating),
195+
AverageRating: f.AverageRating,
196196
}
197197
if f.AlbumStar != nil {
198198
d.Starred = &f.AlbumStar.StarDate

server/ctrlsubsonic/spec/construct_by_tags.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ func NewAlbumByTags(a *db.Album, artists []*db.Artist) *Album {
2222
Genres: []*GenreRef{},
2323
Year: a.TagYear,
2424
Tracks: []*TrackChild{},
25-
AverageRating: formatRating(a.AverageRating),
25+
AverageRating: a.AverageRating,
2626
IsCompilation: a.TagCompilation,
2727
ReleaseTypes: formatReleaseTypes(a.TagReleaseType),
2828
DiscTitles: []*DiscTitle{},
@@ -97,7 +97,7 @@ func NewTrackByTags(t *db.Track, album *db.Album) *TrackChild {
9797
DiscNumber: t.TagDiscNumber,
9898
Type: "music",
9999
MusicBrainzID: t.TagBrainzID,
100-
AverageRating: formatRating(t.AverageRating),
100+
AverageRating: t.AverageRating,
101101
TranscodeMeta: TranscodeMeta{},
102102
Year: t.TagYear,
103103
}
@@ -162,7 +162,7 @@ func NewArtistByTags(a *db.Artist) *Artist {
162162
Name: a.Name,
163163
AlbumCount: a.AlbumCount,
164164
Albums: []*Album{},
165-
AverageRating: formatRating(a.AverageRating),
165+
AverageRating: a.AverageRating,
166166
}
167167
if a.Info != nil && a.Info.ImageURL != "" {
168168
r.CoverID = a.SID()

server/ctrlsubsonic/spec/spec.go

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ type Album struct {
165165
// star / rating
166166
Starred *time.Time `xml:"starred,attr,omitempty" json:"starred,omitempty"`
167167
UserRating int `xml:"userRating,attr,omitempty" json:"userRating,omitempty"`
168-
AverageRating string `xml:"averageRating,attr,omitempty" json:"averageRating,omitempty"`
168+
AverageRating float64 `xml:"averageRating,attr,omitempty" json:"averageRating,omitempty"`
169169
}
170170

171171
type RandomTracks struct {
@@ -228,7 +228,7 @@ type TrackChild struct {
228228
// star / rating
229229
Starred *time.Time `xml:"starred,attr,omitempty" json:"starred,omitempty"`
230230
UserRating int `xml:"userRating,attr,omitempty" json:"userRating,omitempty"`
231-
AverageRating string `xml:"averageRating,attr,omitempty" json:"averageRating,omitempty"`
231+
AverageRating float64 `xml:"averageRating,attr,omitempty" json:"averageRating,omitempty"`
232232

233233
ReplayGain *ReplayGain `xml:"replayGain" json:"replayGain"`
234234

@@ -249,7 +249,7 @@ type Artist struct {
249249
// star / rating
250250
Starred *time.Time `xml:"starred,attr,omitempty" json:"starred,omitempty"`
251251
UserRating int `xml:"userRating,attr,omitempty" json:"userRating,omitempty"`
252-
AverageRating string `xml:"averageRating,attr,omitempty" json:"averageRating,omitempty"`
252+
AverageRating float64 `xml:"averageRating,attr,omitempty" json:"averageRating,omitempty"`
253253
}
254254

255255
type Indexes struct {
@@ -269,7 +269,7 @@ type Directory struct {
269269
Name string `xml:"name,attr,omitempty" json:"name"`
270270
Starred *time.Time `xml:"starred,attr,omitempty" json:"starred,omitempty"`
271271
UserRating int `xml:"userRating,attr,omitempty" json:"userRating,omitempty"`
272-
AverageRating string `xml:"averageRating,attr,omitempty" json:"averageRating,omitempty"`
272+
AverageRating float64 `xml:"averageRating,attr,omitempty" json:"averageRating,omitempty"`
273273
Children []*TrackChild `xml:"child,omitempty" json:"child,omitempty"`
274274
}
275275

@@ -507,13 +507,6 @@ type OpenSubsonicExtension struct {
507507

508508
type OpenSubsonicExtensions []OpenSubsonicExtension
509509

510-
func formatRating(rating float64) string {
511-
if rating == 0 {
512-
return ""
513-
}
514-
return fmt.Sprintf("%.2f", rating)
515-
}
516-
517510
func formatExt(ext string) string {
518511
return strings.TrimPrefix(ext, ".")
519512
}

0 commit comments

Comments
 (0)