From 128a326c8adde25f054035d75513fbaf2b05e9dd Mon Sep 17 00:00:00 2001 From: sentriz Date: Fri, 24 May 2019 14:45:36 +0100 Subject: [PATCH] use errors.Wrap everywhere --- lastfm/lastfm.go | 70 ++++++++++++++++++++++---------------------- scanner/utilities.go | 6 ++-- 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/lastfm/lastfm.go b/lastfm/lastfm.go index 1214f68..b0b275e 100644 --- a/lastfm/lastfm.go +++ b/lastfm/lastfm.go @@ -23,6 +23,41 @@ var ( } ) +func GetSession(apiKey, secret, token string) (string, error) { + params := url.Values{} + params.Add("method", "auth.getSession") + params.Add("api_key", apiKey) + params.Add("token", token) + params.Add("api_sig", getParamSignature(params, secret)) + resp, err := makeRequest("GET", params) + if err != nil { + return "", errors.Wrap(err, "making session GET") + } + return resp.Session.Key, nil +} + +func Scrobble(apiKey, secret, session string, track *model.Track, + stampMili int, submission bool) error { + params := url.Values{} + if submission { + params.Add("method", "track.Scrobble") + // last.fm wants the timestamp in seconds + params.Add("timestamp", strconv.Itoa(stampMili/1e3)) + } else { + params.Add("method", "track.updateNowPlaying") + } + params.Add("api_key", apiKey) + params.Add("sk", session) + params.Add("artist", track.Artist) + params.Add("track", track.Title) + params.Add("album", track.Album.Title) + params.Add("albumArtist", track.AlbumArtist.Name) + params.Add("trackNumber", strconv.Itoa(track.TrackNumber)) + params.Add("api_sig", getParamSignature(params, secret)) + _, err := makeRequest("POST", params) + return err +} + func getParamSignature(params url.Values, secret string) string { // the parameters must be in order before hashing paramKeys := make([]string, 0) @@ -59,38 +94,3 @@ func makeRequest(method string, params url.Values) (*LastFM, error) { } return &lastfm, nil } - -func GetSession(apiKey, secret, token string) (string, error) { - params := url.Values{} - params.Add("method", "auth.getSession") - params.Add("api_key", apiKey) - params.Add("token", token) - params.Add("api_sig", getParamSignature(params, secret)) - resp, err := makeRequest("GET", params) - if err != nil { - return "", fmt.Errorf("error when getting session step '%v'", err) - } - return resp.Session.Key, nil -} - -func Scrobble(apiKey, secret, session string, - track *model.Track, stampMili int, submission bool) error { - params := url.Values{} - if submission { - params.Add("method", "track.Scrobble") - // last.fm wants the timestamp in seconds - params.Add("timestamp", strconv.Itoa(stampMili / 1e3)) - } else { - params.Add("method", "track.updateNowPlaying") - } - params.Add("api_key", apiKey) - params.Add("sk", session) - params.Add("artist", track.Artist) - params.Add("track", track.Title) - params.Add("album", track.Album.Title) - params.Add("albumArtist", track.AlbumArtist.Name) - params.Add("trackNumber", strconv.Itoa(track.TrackNumber)) - params.Add("api_sig", getParamSignature(params, secret)) - _, err := makeRequest("POST", params) - return err -} diff --git a/scanner/utilities.go b/scanner/utilities.go index c52da83..2fa0b80 100644 --- a/scanner/utilities.go +++ b/scanner/utilities.go @@ -1,13 +1,13 @@ package scanner import ( - "fmt" "os" "path" "path/filepath" "strings" "github.com/dhowden/tag" + "github.com/pkg/errors" ) var trackExtensions = map[string]string{ @@ -51,12 +51,12 @@ func isCover(fullPath string) bool { func readTags(path string) (tag.Metadata, error) { trackData, err := os.Open(path) if err != nil { - return nil, fmt.Errorf("when tags from disk: %v", err) + return nil, errors.Wrap(err, "reading track from disk") } defer trackData.Close() tags, err := tag.ReadFrom(trackData) if err != nil { - return nil, err + return nil, errors.Wrap(err, "reading tags from track") } return tags, nil }