/// <summary> /// Loves or unloves a track /// </summary> /// <param name="item">The track</param> /// <param name="user">The Lastfm User</param> /// <param name="love">If the track is loved or not</param> /// <returns></returns> public async Task <bool> LoveTrack(Audio item, LastfmUser user, bool love = true) { var request = new TrackLoveRequest { Artist = item.Artists.FirstOrDefault(), Track = item.Name, ApiKey = Strings.Keys.LastfmApiKey, Method = love ? Strings.Methods.TrackLove : Strings.Methods.TrackUnlove, SessionKey = user.SessionKey, }; try { //Send the request var response = await Post <TrackLoveRequest, BaseResponse>(request); if (response != null && !response.IsError()) { _logger.LogInformation("{0} {2}loved track '{1}'", user.Username, item.Name, (love ? "" : "un")); return(true); } _logger.LogError("{0} Failed to love = {3} track '{1}' - {2}", user.Username, item.Name, response.Message, love); return(false); } catch (Exception ex) { _logger.LogError("{0} Failed to love = {2} track '{1}'", ex, user.Username, item.Name, love); return(false); } }
/// <summary> /// Loves or unloves a track /// </summary> /// <param name="item">The track</param> /// <param name="user">The Lastfm User</param> /// <param name="love">If the track is loved or not</param> /// <returns></returns> public async Task <bool> LoveTrack(Audio item, LastfmUser user, bool love = true) { var request = new TrackLoveRequest(love) { Artist = item.Artists.First(), Track = item.Name, SessionKey = user.SessionKey, }; //Send the request var response = await Post <TrackLoveRequest, BaseResponse>(request).ConfigureAwait(false); if (response == null || response.IsError()) { Plugin.Logger.Error("{0} Failed to love = {3} track '{1}' - {2}", user.Username, item.Name, response?.Message ?? "empty response", love); return(false); } Plugin.Logger.Info("{0} {2}loved track '{1}'", user.Username, item.Name, love ? "" : "un"); return(true); }
/// <summary> /// Loves or unloves a track /// </summary> /// <param name="item">The track</param> /// <param name="user">The Lastfm User</param> /// <param name="love">If the track is loved or not</param> /// <returns></returns> public async Task <bool> TrackLove(Audio item, LfmUser user, bool love = true) { var request = new TrackLoveRequest { artist = item.Artists.First(), track = item.Name, method = love ? PluginConst.Methods.Track.Love : PluginConst.Methods.Track.Unlove, sk = user.SessionKey }; //Send the request var response = await Post <TrackLoveRequest, BaseResponse>(request); if (response != null && !response.IsError()) { Plugin.Logger.Info("{0} {2}loved track '{1}'", user.Username, item.Name, love ? "" : "un"); return(true); } Plugin.Logger.Error("{0} Failed to love = {3} track '{1}' - {2}", user.Username, item.Name, response?.message, love); return(false); }
/// <summary> /// Loves or unloves a track /// </summary> /// <param name="item">The track</param> /// <param name="user">The Lastfm User</param> /// <param name="love">If the track is loved or not</param> /// <returns></returns> public async Task<bool> LoveTrack(Audio item, LastfmUser user, bool love = true) { var request = new TrackLoveRequest { Artist = item.Artists.First(), Track = item.Name, ApiKey = Strings.Keys.LastfmApiKey, Method = love ? Strings.Methods.TrackLove : Strings.Methods.TrackUnlove, SessionKey = user.SessionKey, }; //Send the request var response = await Post<TrackLoveRequest, BaseResponse>(request); if (response != null && !response.IsError()) { Plugin.Logger.Info("{0} {2}loved track '{1}'", user.Username, item.Name, (love ? "" : "un")); return true; } Plugin.Logger.Error("{0} Failed to love = {3} track '{1}' - {2}", user.Username, item.Name, response.Message, love); return false; }