diff options
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -134,7 +134,7 @@ func parsePart2(values url.Values) (Scrobble, error) { return scrobble, nil } -func parseScrobbles(values url.Values, session *Session) []Scrobble { +func parseScrobbles(values url.Values, session *Session) ([]Scrobble, int) { scrobbles := make([]Scrobble, 0, 1) parts := parseValues(values) var parsePart func(url.Values) (Scrobble, error) @@ -143,25 +143,27 @@ func parseScrobbles(values url.Values, session *Session) []Scrobble { } else { parsePart = parsePart1 } + ignored := 0 for i, c := 0, 0; i < 50 && c < len(parts); i++ { if part, ok := parts[i]; ok { c++ if scrobble, err := parsePart(part); err != nil { fmt.Printf("%v\n", err) + ignored++ } else { scrobble.Session = session.Key scrobbles = append(scrobbles, scrobble) } } } - return scrobbles + return scrobbles, ignored } func scrobbleHandler(ds DataStore, w http.ResponseWriter, r *http.Request) { if session, err := ds.GetSession(r.FormValue("s")); err != nil { fmt.Fprintln(w, "BADSESSION") } else { - scrobbles := parseScrobbles(r.Form, session) + scrobbles, _ := parseScrobbles(r.Form, session) fmt.Printf("%v\n", scrobbles) ds.PutScrobbles(scrobbles) fmt.Fprintln(w, "OK") |
