log scrobbling errors
related https://github.com/sentriz/gonic/issues/162
This commit is contained in:
@@ -1,18 +1,15 @@
|
|||||||
package multierr
|
package multierr
|
||||||
|
|
||||||
import (
|
import "strings"
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
type Err []error
|
type Err []error
|
||||||
|
|
||||||
func (me Err) Error() string {
|
func (me Err) Error() string {
|
||||||
var s strings.Builder
|
var strs []string
|
||||||
for _, err := range me {
|
for _, err := range me {
|
||||||
s.WriteString("\n")
|
strs = append(strs, err.Error())
|
||||||
s.WriteString(err.Error())
|
|
||||||
}
|
}
|
||||||
return s.String()
|
return strings.Join(strs, "\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (me Err) Len() int {
|
func (me Err) Len() int {
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import (
|
|||||||
|
|
||||||
"github.com/jinzhu/gorm"
|
"github.com/jinzhu/gorm"
|
||||||
|
|
||||||
|
"go.senan.xyz/gonic/multierr"
|
||||||
"go.senan.xyz/gonic/server/ctrlsubsonic/params"
|
"go.senan.xyz/gonic/server/ctrlsubsonic/params"
|
||||||
"go.senan.xyz/gonic/server/ctrlsubsonic/spec"
|
"go.senan.xyz/gonic/server/ctrlsubsonic/spec"
|
||||||
"go.senan.xyz/gonic/server/ctrlsubsonic/specid"
|
"go.senan.xyz/gonic/server/ctrlsubsonic/specid"
|
||||||
@@ -53,13 +54,14 @@ func (c *Controller) ServeScrobble(r *http.Request) *spec.Response {
|
|||||||
// instead convert UnixNano to miliseconds
|
// instead convert UnixNano to miliseconds
|
||||||
optStampMili := params.GetOrInt("time", int(time.Now().UnixNano()/1e6))
|
optStampMili := params.GetOrInt("time", int(time.Now().UnixNano()/1e6))
|
||||||
optSubmission := params.GetOrBool("submission", true)
|
optSubmission := params.GetOrBool("submission", true)
|
||||||
scrobbleErrs := []error{}
|
var scrobbleErrs multierr.Err
|
||||||
for _, scrobbler := range c.Scrobblers {
|
for _, scrobbler := range c.Scrobblers {
|
||||||
if err := scrobbler.Scrobble(user, track, optStampMili, optSubmission); err != nil {
|
if err := scrobbler.Scrobble(user, track, optStampMili, optSubmission); err != nil {
|
||||||
scrobbleErrs = append(scrobbleErrs, err)
|
scrobbleErrs.Add(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(scrobbleErrs) != 0 {
|
if scrobbleErrs.Len() > 0 {
|
||||||
|
log.Printf("error when submitting: %v", scrobbleErrs)
|
||||||
return spec.NewError(0, "error when submitting: %v", scrobbleErrs)
|
return spec.NewError(0, "error when submitting: %v", scrobbleErrs)
|
||||||
}
|
}
|
||||||
return spec.NewResponse()
|
return spec.NewResponse()
|
||||||
|
|||||||
Reference in New Issue
Block a user