mirror of
https://github.com/navidrome/navidrome.git
synced 2025-04-07 06:27:36 +03:00
Ignores invalid timestamps in requests (use current time)
Fix this issue: https://www.reddit.com/r/navidrome/comments/ql3imf/scrobbling_fails_when_using_substreamer/
This commit is contained in:
parent
975986ab16
commit
6a87fc88f7
2 changed files with 14 additions and 2 deletions
|
@ -5,6 +5,8 @@ import (
|
|||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/navidrome/navidrome/log"
|
||||
)
|
||||
|
||||
func ParamString(r *http.Request, param string) string {
|
||||
|
@ -28,9 +30,12 @@ func ParamTimes(r *http.Request, param string) []time.Time {
|
|||
times := make([]time.Time, len(pStr))
|
||||
for i, t := range pStr {
|
||||
ti, err := strconv.ParseInt(t, 10, 64)
|
||||
if err == nil {
|
||||
times[i] = ToTime(ti)
|
||||
if err != nil {
|
||||
log.Warn(r.Context(), "Ignoring invalid time param", "time", t, err)
|
||||
times[i] = time.Now()
|
||||
continue
|
||||
}
|
||||
times[i] = ToTime(ti)
|
||||
}
|
||||
return times
|
||||
}
|
||||
|
|
|
@ -92,6 +92,13 @@ var _ = Describe("Request Helpers", func() {
|
|||
It("returns all param occurrences as []time.Time", func() {
|
||||
Expect(ParamTimes(r, "t")).To(Equal([]time.Time{d1, d2}))
|
||||
})
|
||||
It("returns current time as default if param is invalid", func() {
|
||||
now := time.Now()
|
||||
r = httptest.NewRequest("GET", "/ping?t=null", nil)
|
||||
times := ParamTimes(r, "t")
|
||||
Expect(times).To(HaveLen(1))
|
||||
Expect(times[0]).To(BeTemporally(">=", now))
|
||||
})
|
||||
})
|
||||
|
||||
Describe("ParamInt", func() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue