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) { } }
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) { } }
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) { } }
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) { } }
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) { } }