Ejemplo n.º 1
0
        private void LookSubGenres(string url, string genre, int genreId)
        {
            try
            {
                Genre tempGenre;
                var   html         = Helpers.GetHtml(url + "/" + genre);
                var   haveSubGenre = html.CssSelect("#subgenres");

                if (haveSubGenre.Any())
                {
                    htmlNodes = html.CssSelect("ul.genre-list > li.genre-item > span > a");

                    foreach (var item in htmlNodes)
                    {
                        string shortcut = item.GetAttributeValue("href");
                        shortcut = shortcut.Substring(shortcut.LastIndexOf("/") + 1);
                        string name = item.InnerText.TrimStart().TrimEnd();

                        tempGenre = new Genre()
                        {
                            Name = name, ShortCut = shortcut, ParentId = genreId
                        };
                        repo.Save(tempGenre);
                        //Se uso recursion para obtener los sub generos anidados.
                        LookSubGenres(url, (genre + "/" + shortcut), tempGenre.GenreId);
                    }
                }
            }
            catch (Exception ex) { }
        }
Ejemplo n.º 2
0
        private void LookArtist(string url, int genreId)
        {
            try
            {
                artists     = repo.GetAll().ToHashSet();
                artistGenre = new List <ArtistGenre>();

                var html = Helpers.GetHtml(url);
                htmlNodes = html.CssSelect("div.column.artist-item > div.name > a");

                foreach (var item in htmlNodes)
                {
                    string shortcut = item.GetAttributeValue("href");
                    shortcut = shortcut.Substring(shortcut.LastIndexOf("/") + 1);
                    var name = item.InnerText.TrimStart().TrimEnd();

                    if (!artists.Where(x => x.ShortCut == shortcut).Any())
                    {
                        var artist = new Artist()
                        {
                            Name = name, ShortCut = shortcut
                        };
                        repo.Save(artist);
                        artistGenre.Add(new ArtistGenre()
                        {
                            ArtistId = artist.ArtistId, GenreId = genreId
                        });
                    }
                }
            }
            catch (Exception ex) { }
        }
Ejemplo n.º 3
0
        private void LookTrack(string url, int artistId, int albumId)
        {
            try
            {
                tracks = new List <Track>();
                var html = Helpers.GetHtml(url);
                htmlNodes = html.CssSelect("li.track-item.js-track-item");

                foreach (var item in htmlNodes)
                {
                    string shortcut = item.GetAttributeValue("track_shortcut");
                    string name     = item.GetAttributeValue("track_name");

                    tracks.Add(new Track()
                    {
                        Name = name, ShortCut = shortcut, ArtistId = artistId, AlbumId = albumId
                    });
                }
            }
            catch (Exception ex) { }
        }
Ejemplo n.º 4
0
        private void LookAlbum(string url, int artistId)
        {
            try
            {
                var html = Helpers.GetHtml(url + "s");
                htmlNodes = html.CssSelect("[feature|='Albums, Main Releases'] > div.row.album-list.js-album-list > div.column.album-item.js-album-item");

                foreach (var item in htmlNodes)
                {
                    string shortcut = item.GetAttributeValue("album_shortcut");
                    var    name     = item.GetAttributeValue("album_name");

                    var album = new Album()
                    {
                        Name = name, ShortCut = shortcut, ArtistId = artistId
                    };
                    repo.Save(album);
                    tracks.SearchTracks(url + "/" + shortcut, artistId, album.AlbumId);
                }
            }
            catch (Exception ex) { }
        }
Ejemplo n.º 5
0
        private void LookGenres(string url)
        {
            try
            {
                var html = Helpers.GetHtml(url);
                htmlNodes = html.CssSelect("div.column.genre-item > a");

                foreach (var item in htmlNodes)
                {
                    string shortcut = item.GetAttributeValue("href");
                    shortcut = shortcut.Substring(shortcut.LastIndexOf("/") + 1);
                    var name = item.CssSelect("span.genre-name-text").Single().InnerText.TrimStart().TrimEnd();

                    var genre = new Genre()
                    {
                        Name = name, ShortCut = shortcut
                    };
                    repo.Save(genre);

                    artists.SearchArtist("https://us.napster.com/genre/" + shortcut, genre.GenreId);
                }
            }
            catch (Exception ex) { }
        }