Example #1
0
        public async Task <Album> GetAlbumInfo(string albumTitle, 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 url    = string.Format(
                    "http://ws.audioscrobbler.com/2.0/?method=album.getinfo&artist={1}&album={3}&api_key={0}&format=json&lang={2}",
                    MusicMDFetcher.ApiKeyLastFm, artistName, region.Code.ToLower(), albumTitle);
                var reponse = await lastFmClient.GetStringAsync(new Uri(url));

                {
                    var albumInfo = JsonConvert.DeserializeObject <AlbumInformation>(reponse);
                    if (albumInfo == null)
                    {
                        return(null);
                    }
                    if (albumInfo.Album == null)
                    {
                        return(null);
                    }
                    var album = new Album();
                    album.MapFrom(albumInfo.Album);
                    return(album);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(string.Format("Failed to get artist biography from LastFM. Returning nothing. {0}", ex));
            }
            return(null);
        }
Example #2
0
        public async Task <Album> GetAlbumInfo(string albumTitle, string artistName)
        {
            try
            {
                var    deezerClient = new HttpClient();
                string json         = await deezerClient.GetStringAsync(new Uri(string.Format("http://api.deezer.com/search/album?q={0} {1}&appid={2}", albumTitle, artistName, MusicMDFetcher.DeezerAppId)));

                if (json == "{\"data\":[],\"total\":0}")
                {
                    return(null);
                }
                var deezerAlbums = JsonConvert.DeserializeObject <Albums>(json);
                if (deezerAlbums.Data != null)
                {
                    var deezerAlbum = deezerAlbums.Data.FirstOrDefault();
                    var album       = new Album();
                    album.MapFrom(deezerAlbum);
                    return(album);
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine("DeezerClient.GetAlbumInfo", e);
            }
            return(null);
        }
Example #3
0
        public async Task <List <Album> > GetArtistTopAlbums(string artistId)
        {
            try
            {
                var    deezerClient = new HttpClient();
                string json         = await deezerClient.GetStringAsync(new Uri(string.Format("http://api.deezer.com/artist/{0}/albums?appid={1}", artistId, MusicMDFetcher.DeezerAppId)));

                var deezerAlbums = JsonConvert.DeserializeObject <Albums>(json);
                if (deezerAlbums == null)
                {
                    return(null);
                }
                if (deezerAlbums.Data == null)
                {
                    return(null);
                }
                var albumList = new List <Album>();
                foreach (var deezerAlbum in deezerAlbums.Data)
                {
                    var album = new Album();
                    album.MapFrom(deezerAlbum);
                    albumList.Add(album);
                }
                return(albumList);
            }
            catch (Exception e)
            {
                Debug.WriteLine("DeezerClient.GetArtistTopAlbums", e);
            }
            return(null);
        }
Example #4
0
        /// <summary>
        /// Retreve a collection of top albums by an artist via LastFmClient.
        /// </summary>
        /// <param name="name">The artists name.</param>
        /// <returns>A list of Albums.</returns>
        public async Task <List <Album> > GetArtistTopAlbums(string name)
        {
            try
            {
                Debug.WriteLine("Getting TopAlbums from LastFM API");
                var lastFmClient = new HttpClient();
                var response     =
                    await
                    lastFmClient.GetStringAsync(new Uri(string.Format("http://ws.audioscrobbler.com/2.0/?method=artist.gettopalbums&limit=8&format=json&api_key={0}&artist={1}", MusicMDFetcher.ApiKeyLastFm, name)));

                var albums = JsonConvert.DeserializeObject <TopAlbumInformation>(response);
                Debug.WriteLine("Receive TopAlbums from LastFM API");
                if (albums == null)
                {
                    return(null);
                }
                var albumList = albums.TopAlbums.Album;
                if (albumList == null)
                {
                    return(null);
                }
                var formattedAlbumList = new List <Album>();
                foreach (var topAlbum in albumList)
                {
                    var album = new Album();
                    album.MapFrom(topAlbum);
                    formattedAlbumList.Add(album);
                }
                return(formattedAlbumList);
            }
            catch
            {
                Debug.WriteLine("Error getting top albums from artist.");
            }
            return(null);
        }
Example #5
0
 public async Task<Album> GetAlbumInfo(string albumTitle, string artistName)
 {
     try
     {
         var deezerClient = new HttpClient();
         string json = await deezerClient.GetStringAsync(new Uri(string.Format("http://api.deezer.com/search/album?q={0} {1}&appid={2}", albumTitle, artistName, MusicMDFetcher.DeezerAppId)));
         if (json == "{\"data\":[],\"total\":0}")
         {
             return null;
         }
         var deezerAlbums = JsonConvert.DeserializeObject<Albums>(json);
         if (deezerAlbums.Data != null)
         {
             var deezerAlbum = deezerAlbums.Data.FirstOrDefault();
             var album = new Album();
             album.MapFrom(deezerAlbum);
             return album;
         }
     }
     catch (Exception e)
     {
         Debug.WriteLine("DeezerClient.GetAlbumInfo", e);
     }
     return null;
 }
Example #6
0
 public async Task<List<Album>> GetArtistTopAlbums(string artistId)
 {
     try
     {
         var deezerClient = new HttpClient();
         string json = await deezerClient.GetStringAsync(new Uri(string.Format("http://api.deezer.com/artist/{0}/albums?appid={1}", artistId, MusicMDFetcher.DeezerAppId)));
         var deezerAlbums = JsonConvert.DeserializeObject<Albums>(json);
         if (deezerAlbums == null) return null;
         if (deezerAlbums.Data == null) return null;
         var albumList = new List<Album>();
         foreach (var deezerAlbum in deezerAlbums.Data)
         {
             var album = new Album();
             album.MapFrom(deezerAlbum);
             albumList.Add(album);
         }
         return albumList;
     }
     catch (Exception e)
     {
         Debug.WriteLine("DeezerClient.GetArtistTopAlbums", e);
     } 
     return null;
 }
Example #7
0
 /// <summary>
 /// Retreve a collection of top albums by an artist via LastFmClient.
 /// </summary>
 /// <param name="name">The artists name.</param>
 /// <returns>A list of Albums.</returns>
 public async Task<List<Album>> GetArtistTopAlbums(string name)
 {
     try
     {
         Debug.WriteLine("Getting TopAlbums from LastFM API");
         var lastFmClient = new HttpClient();
         var response =
             await
                 lastFmClient.GetStringAsync(new Uri(string.Format("http://ws.audioscrobbler.com/2.0/?method=artist.gettopalbums&limit=8&format=json&api_key={0}&artist={1}", MusicMDFetcher.ApiKeyLastFm, name)));
         var albums = JsonConvert.DeserializeObject<TopAlbumInformation>(response);
         Debug.WriteLine("Receive TopAlbums from LastFM API");
         if (albums == null) return null;
         var albumList = albums.TopAlbums.Album;
         if (albumList == null) return null;
         var formattedAlbumList = new List<Album>();
         foreach (var topAlbum in albumList)
         {
             var album = new Album();
             album.MapFrom(topAlbum);
             formattedAlbumList.Add(album);
         }
         return formattedAlbumList;
     }
     catch
     {
         Debug.WriteLine("Error getting top albums from artist.");
     }
     return null;
 }
Example #8
0
 public async Task<Album> GetAlbumInfo(string albumTitle, 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 url = string.Format(
             "http://ws.audioscrobbler.com/2.0/?method=album.getinfo&artist={1}&album={3}&api_key={0}&format=json&lang={2}",
             MusicMDFetcher.ApiKeyLastFm, artistName, region.Code.ToLower(), albumTitle);
         var reponse = await lastFmClient.GetStringAsync(new Uri(url));
         {
             var albumInfo = JsonConvert.DeserializeObject<AlbumInformation>(reponse);
             if (albumInfo == null) return null;
             if (albumInfo.Album == null) return null;
             var album = new Album();
             album.MapFrom(albumInfo.Album);
             return album;
         }
     }
     catch (Exception ex)
     {
         Debug.WriteLine(string.Format("Failed to get artist biography from LastFM. Returning nothing. {0}", ex));
     }
     return null;
 }