示例#1
1
 public async Task<List<Artist>> GetSimilarArtists(string artistId)
 {
     try
     {
         var deezerClient = new HttpClient();
         string json = await deezerClient.GetStringAsync(new Uri(string.Format("http://api.deezer.com/artist/{0}/related?appid={1}", artistId, MusicMDFetcher.DeezerAppId)));
         var deezerArtists = JsonConvert.DeserializeObject<Artists>(json);
         var artistList = new List<Artist>();
         if (deezerArtists.Data != null)
         {
             foreach (var deezerArtist in deezerArtists.Data)
             {
                 var artist = new Artist();
                 artist.MapFrom(deezerArtist);
                 artistList.Add(artist);
             }
         }
         return artistList;
     }
     catch (Exception e)
     {
         Debug.WriteLine("DeezerClient.GetSimilarArtists", e);
     }
     return null;
 }
示例#2
0
        public async Task <Artist> GetArtistEventInfo(string artistName)
        {
            try
            {
                var    lastFmClient = new HttpClient();
                string url          =
                    string.Format(
                        "http://ws.audioscrobbler.com/2.0/?method=artist.getevents&artist={1}&api_key={0}&format=json&pretty=true",
                        MusicMDFetcher.ApiKeyLastFm, artistName);
                var reponse = await lastFmClient.GetStringAsync(new Uri(url));

                var artistEventInfo = JsonConvert.DeserializeObject <ArtistEventInformation>(reponse);
                if (artistEventInfo == null)
                {
                    return(null);
                }
                if (artistEventInfo.Events == null)
                {
                    return(null);
                }
                if (artistEventInfo.Events.Event == null)
                {
                    return(null);
                }
                var artist = new Artist();
                artist.MapFrom(artistEventInfo);
                return(artist);
            }
            catch (Exception e)
            {
                Debug.WriteLine("Error when trying to get Shows for artist : " + artistName + " exception log " + e.ToString());
            }
            return(null);
        }
示例#3
0
 public async Task<Artist> GetArtistInfo(string artistName)
 {
     try
     {
         var deezerClient = new HttpClient();
         string json = await deezerClient.GetStringAsync(new Uri(string.Format("http://api.deezer.com/search/artist?q={0}&appid={1}", System.Net.WebUtility.HtmlEncode(artistName), MusicMDFetcher.DeezerAppId)));
         // TODO: See if this is even needed. It should just map an empty object.
         if (json == "{\"data\":[],\"total\":0}")
         {
             return null;
         }
         var deezerArtists = JsonConvert.DeserializeObject<Artists>(json);
         if (deezerArtists.Data != null && deezerArtists.Total > 0)
         {
             var deezerArtist = deezerArtists.Data.FirstOrDefault();
             var artist = new Artist();
             artist.MapFrom(deezerArtist);
             return artist;
         }
     }
     catch (Exception e)
     {
         Debug.WriteLine("DeezerClient.GetArtistInfo", e);
     }
     return null;
 }
示例#4
0
        public async Task <List <Artist> > GetSimilarArtists(string artistName)
        {
            try
            {
                var lastFmClient = new HttpClient();
                var response     =
                    await
                    lastFmClient.GetStringAsync(new Uri(string.Format("http://ws.audioscrobbler.com/2.0/?method=artist.getsimilar&format=json&limit=8&api_key={0}&artist={1}", MusicMDFetcher.ApiKeyLastFm, artistName)));

                var artists = JsonConvert.DeserializeObject <SimilarArtistInformation>(response);
                if (artists == null || artists.Similarartists == null || !artists.Similarartists.Artist.Any())
                {
                    return(null);
                }
                var similarArtists = artists.Similarartists.Artist;
                var artistList     = new List <Artist>();
                foreach (var similarArtist in similarArtists)
                {
                    var artist = new Artist();
                    artist.MapFrom(similarArtist);
                    artistList.Add(artist);
                }
                return(artistList);
            }
            catch
            {
                Debug.WriteLine("Error getting similar artists from this artist.");
            }
            return(null);
        }
示例#5
0
        public async Task <List <Artist> > GetSimilarArtists(string artistId)
        {
            try
            {
                var    deezerClient = new HttpClient();
                string json         = await deezerClient.GetStringAsync(new Uri(string.Format("http://api.deezer.com/artist/{0}/related?appid={1}", artistId, MusicMDFetcher.DeezerAppId)));

                var deezerArtists = JsonConvert.DeserializeObject <Artists>(json);
                var artistList    = new List <Artist>();
                if (deezerArtists.Data != null)
                {
                    foreach (var deezerArtist in deezerArtists.Data)
                    {
                        var artist = new Artist();
                        artist.MapFrom(deezerArtist);
                        artistList.Add(artist);
                    }
                }
                return(artistList);
            }
            catch (Exception e)
            {
                Debug.WriteLine("DeezerClient.GetSimilarArtists", e);
            }
            return(null);
        }
示例#6
0
        public async Task <Artist> GetArtistInfo(string artistName)
        {
            try
            {
                var    deezerClient = new HttpClient();
                string json         = await deezerClient.GetStringAsync(new Uri(string.Format("http://api.deezer.com/search/artist?q={0}&appid={1}", System.Net.WebUtility.HtmlEncode(artistName), MusicMDFetcher.DeezerAppId)));

                // TODO: See if this is even needed. It should just map an empty object.
                if (json == "{\"data\":[],\"total\":0}")
                {
                    return(null);
                }
                var deezerArtists = JsonConvert.DeserializeObject <Artists>(json);
                if (deezerArtists.Data != null && deezerArtists.Total > 0)
                {
                    var deezerArtist = deezerArtists.Data.FirstOrDefault();
                    var artist       = new Artist();
                    artist.MapFrom(deezerArtist);
                    return(artist);
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine("DeezerClient.GetArtistInfo", e);
            }
            return(null);
        }
示例#7
0
        public async Task <Artist> GetArtistInfo(string artistName)
        {
            try
            {
                var lastFmClient = new HttpClient();

                // Get users language/region
                // If their region is not support by LastFM, it won't return an artist biography.
                var    region     = new Windows.Globalization.GeographicRegion();
                string regionCode = "en";
                // LastFM does not take in normal windows region codes as valid language values.
                // We must set them ourselves.
                switch (Windows.System.UserProfile.GlobalizationPreferences.Languages.First())
                {
                case "en-US":
                    regionCode = "en";
                    break;

                case "ja":
                    regionCode = "jp";
                    break;
                }
                string url     = string.Format("http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist={1}&api_key={0}&lang={2}&format=json", MusicMDFetcher.ApiKeyLastFm, artistName, regionCode);
                var    reponse = await lastFmClient.GetStringAsync(new Uri(url));

                {
                    var artistInfo = JsonConvert.DeserializeObject <ArtistInformation>(reponse);
                    if (artistInfo == null)
                    {
                        return(null);
                    }
                    if (artistInfo.Artist == null)
                    {
                        return(null);
                    }
                    var artist = new Artist();
                    artist.MapFrom(artistInfo);
                    return(artist);
                }
            }
            catch (Exception exception)
            {
                Debug.WriteLine("Failed to get artist biography from LastFM. Returning nothing." + exception.ToString());
            }
            return(null);
        }
示例#8
0
        public async Task <List <Artist> > GetTopArtistsGenre(string genre)
        {
            var lastFmClient = new HttpClient();
            var response     =
                await
                lastFmClient.GetStringAsync(
                    new Uri(
                        string.Format(
                            "http://ws.audioscrobbler.com/2.0/?method=tag.gettopartists&tag={1}&api_key={0}&format=json",
                            MusicMDFetcher.ApiKeyLastFm, genre)));

            var topartists = JsonConvert.DeserializeObject <TopArtistInformation>(response);
            var artistList = new List <Artist>();

            foreach (var topArtistArtist in topartists.topartists.artist)
            {
                var artist = new Artist();
                artist.Name = topArtistArtist.name;
                artistList.Add(artist);
            }
            return(artistList);
        }
示例#9
0
        public async Task<Artist> GetArtistInfo(string artistName)
        {
            try
            {
                var lastFmClient = new HttpClient();

                // Get users language/region
                // If their region is not support by LastFM, it won't return an artist biography.
                var region = new Windows.Globalization.GeographicRegion();
                string regionCode = "en";
                // LastFM does not take in normal windows region codes as valid language values.
                // We must set them ourselves.
                switch (Windows.System.UserProfile.GlobalizationPreferences.Languages.First())
                {
                    case "en-US":
                        regionCode = "en";
                        break;
                    case "ja":
                        regionCode = "jp";
                        break;
                }
                string url = string.Format("http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist={1}&api_key={0}&lang={2}&format=json", MusicMDFetcher.ApiKeyLastFm, artistName, regionCode);
                var reponse = await lastFmClient.GetStringAsync(new Uri(url));
                {
                    var artistInfo = JsonConvert.DeserializeObject<ArtistInformation>(reponse);
                    if (artistInfo == null) return null;
                    if (artistInfo.Artist == null) return null;
                    var artist = new Artist();
                    artist.MapFrom(artistInfo);
                    return artist;
                }
            }
            catch (Exception exception)
            {
                Debug.WriteLine("Failed to get artist biography from LastFM. Returning nothing." + exception.ToString());
            }
            return null;
        }
示例#10
0
 public async Task<Artist> GetArtistEventInfo(string artistName)
 {
     try
     {
         var lastFmClient = new HttpClient();
         string url =
             string.Format(
                 "http://ws.audioscrobbler.com/2.0/?method=artist.getevents&artist={1}&api_key={0}&format=json&pretty=true",
                 MusicMDFetcher.ApiKeyLastFm, artistName);
         var reponse = await lastFmClient.GetStringAsync(new Uri(url));
         var artistEventInfo = JsonConvert.DeserializeObject<ArtistEventInformation>(reponse);
         if (artistEventInfo == null) return null;
         if (artistEventInfo.Events == null) return null;
         if (artistEventInfo.Events.Event == null) return null;
         var artist = new Artist();
         artist.MapFrom(artistEventInfo);
         return artist;
     }
     catch (Exception e)
     {
         Debug.WriteLine("Error when trying to get Shows for artist : " + artistName + " exception log " + e.ToString());
     }
     return null;
 }
示例#11
0
 public async Task<List<Artist>> GetSimilarArtists(string artistName)
 {
     try
     {
         var lastFmClient = new HttpClient();
         var response =
             await
                 lastFmClient.GetStringAsync(new Uri(string.Format("http://ws.audioscrobbler.com/2.0/?method=artist.getsimilar&format=json&limit=8&api_key={0}&artist={1}", MusicMDFetcher.ApiKeyLastFm, artistName)));
         var artists = JsonConvert.DeserializeObject<SimilarArtistInformation>(response);
         if (artists == null || artists.Similarartists == null || !artists.Similarartists.Artist.Any()) return null;
         var similarArtists = artists.Similarartists.Artist;
         var artistList = new List<Artist>();
         foreach (var similarArtist in similarArtists)
         {
             var artist = new Artist();
             artist.MapFrom(similarArtist);
             artistList.Add(artist);
         }
         return artistList;
     }
     catch
     {
         Debug.WriteLine("Error getting similar artists from this artist.");
     }
     return null;
 }
示例#12
0
 public async Task<List<Artist>> GetTopArtistsGenre(string genre)
 {
     var lastFmClient = new HttpClient();
     var response =
         await
             lastFmClient.GetStringAsync(
                 new Uri(
                     string.Format(
                         "http://ws.audioscrobbler.com/2.0/?method=tag.gettopartists&tag={1}&api_key={0}&format=json",
                         MusicMDFetcher.ApiKeyLastFm, genre)));
     var topartists = JsonConvert.DeserializeObject<TopArtistInformation>(response);
     var artistList = new List<Artist>();
     foreach (var topArtistArtist in topartists.topartists.artist)
     {
         var artist = new Artist();
         artist.Name = topArtistArtist.name;
         artistList.Add(artist);
     }
     return artistList;
 }