Пример #1
0
        /// <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);
            }
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        /// <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);
        }
Пример #4
0
        /// <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;
        }