diff options
Diffstat (limited to 'modern.go')
| -rw-r--r-- | modern.go | 33 |
1 files changed, 23 insertions, 10 deletions
@@ -7,6 +7,7 @@ import ( "encoding/xml" "errors" "fmt" + "log" "net/http" "strings" "time" @@ -17,6 +18,7 @@ type Api interface { AuthGetSession(*http.Request) (ApiResponse, error) AuthGetMobileSession(*http.Request) (ApiResponse, error) TrackScrobble(*http.Request) (ApiResponse, error) + UpdateNowPlaying(*http.Request) (ApiResponse, error) } type ApiResponse interface { @@ -149,13 +151,25 @@ func (store *SqlStore) AuthGetSession(r *http.Request) (ApiResponse, error) { func (store *SqlStore) TrackScrobble(r *http.Request) (ApiResponse, error) { if session, err := store.GetSession(r.FormValue("sk")); err != nil { - fmt.Printf("%v\n", err) return nil, err } else { scrobbles, ignored := parseScrobbles(r.Form, session) - store.PutScrobbles(scrobbles) - return Scrobbles{Scrobbles: scrobbles, - Attrs: Attrs{len(scrobbles), ignored}}, nil + if err := store.PutScrobbles(scrobbles); err != nil { + return nil, err + } else { + return Scrobbles{Scrobbles: scrobbles, + Attrs: Attrs{len(scrobbles), ignored}}, nil + } + } +} + +func (store *SqlStore) UpdateNowPlaying(r *http.Request) (ApiResponse, error) { + if session, err := store.GetSession(r.FormValue("sk")); err != nil { + return nil, err + } else { + fmt.Println("TODO") + fmt.Printf("%v", session) + return nil, nil } } @@ -166,18 +180,17 @@ func (app *App) ApiHandler(w http.ResponseWriter, r *http.Request) { switch strings.ToLower(method) { case "auth.gettoken": response, err = app.AuthGetToken(r) - if err != nil { - fmt.Printf("%v\n", err) - } case "auth.getsession": response, err = app.AuthGetSession(r) case "auth.getmobilesession": response, err = app.AuthGetMobileSession(r) case "track.scrobble": response, err = app.TrackScrobble(r) - if err != nil { - fmt.Printf("%v\n", err) - } + case "update.nowplaying": + response, err = app.UpdateNowPlaying(r) + } + if err != nil { + log.Println("%v", err) } var text []byte switch r.FormValue("format") { |
