Пример #1
0
        public async Task<LastFmTrack> GetInfo(string title, string artist, bool autoCorrect = true, string mbid = null)
        {
            var parameters = new Dictionary<string, string>();

            if (!string.IsNullOrEmpty(mbid))
                parameters.Add("mbid", mbid);
            else
            {
                parameters.Add("artist", artist);
                parameters.Add("track", title);
            }

            if (autoCorrect)
                parameters.Add("autocorrect", "1");

            parameters.Add("api_key", _lastFm.ApiKey);

            var response = await new CoreRequest(new Uri(LastFmConst.MethodBase + "track.getInfo"), parameters).Execute();

            LastFmErrorProcessor.ProcessError(response);


            if (response["track"] != null)
            {
                return LastFmTrack.FromJson(response["track"]);
            }

            return null;
        }
Пример #2
0
        public async Task<List<LastFmTrack>> Search(string track, string artist)
        {
            var parameters = new Dictionary<string, string>();

            parameters.Add("track", track);
            if (!string.IsNullOrEmpty(artist))
                parameters.Add("artist", artist);

            parameters.Add("api_key", _lastFm.ApiKey);

            var response = await new CoreRequest(new Uri(LastFmConst.MethodBase + "track.search"), parameters).Execute();

            LastFmErrorProcessor.ProcessError(response);

            if (response.SelectToken("results.trackmatches.track") != null)
            {
                var trackJson = response.SelectToken("results.trackmatches.track");
                if (trackJson is JArray)
                    return (from t in response.SelectToken("results.trackmatches.track")
                           select LastFmTrack.FromJson(t)).ToList();
                else
                    return new List<LastFmTrack>() { LastFmTrack.FromJson(trackJson) };
            }

            return null;
        }