public AbstractChartDto ParseChart(string p_chartData) { AbstractChartDto chart = new ChartDto(); chart.Type = ChartType.Shazam; chart.Name = "Shazam 100 " + DateTime.Now.ToString("MM-dd-yyyy"); chart.Uid = "Shazam-100-" + DateTime.Now.ToString("MM-dd-yyyy"); chart.Date = DateTime.Now; JObject ojson = JObject.Parse(p_chartData); int charPosCounter = 1; foreach (var chartItem in ojson["chart"]) { AbstractChartSongDto _song = new ChartSongDto(); _song.Name = chartItem["heading"]["title"].ToString(); _song.Artist = chartItem["heading"]["subtitle"].ToString(); _song.Position = charPosCounter; chart.SongsList.Add(_song); chart.SongNum += 1; charPosCounter += 1; } return(chart); }
//chart-details public AbstractChartDto ParseChart(string p_chartData) { AbstractChartDto chart = new ChartDto(); chart.Type = ChartType.YouTube; chart.Name = "Top Songs 100 " + DateTime.Now.ToString("MM-dd-yyyy"); chart.Uid = "Top-Songs-100-" + DateTime.Now.ToString("MM-dd-yyyy"); chart.Date = DateTime.Now; HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); doc.LoadHtml(p_chartData); IEnumerable <HtmlAgilityPack.HtmlNode> currNodeItems = doc.DocumentNode.SelectNodes("//*[contains(@class,'chart-list-item')]"); string node_html = ""; int charPosCounter = 1; foreach (var item in currNodeItems) { string dataRank = string.Empty; string dataArtist = string.Empty; string dataTitle = string.Empty; if (item.Attributes["data-rank"] != null && item.Attributes["data-artist"] != null && item.Attributes["data-title"] != null) { dataRank = item.Attributes["data-rank"].Value.ToString(); dataArtist = item.Attributes["data-artist"].Value.ToString(); dataTitle = item.Attributes["data-title"].Value.ToString(); ChartSongDto _song = new ChartSongDto(); _song.Name = dataTitle.Replace("\\n", "").Trim(); _song.Artist = dataArtist.Replace("\\n", "").Trim(); _song.Position = charPosCounter; chart.SongsList.Add(_song); chart.SongNum += 1; charPosCounter += 1; } } return(chart); }
//chart-details public AbstractChartDto ParseChart(string p_chartData) { AbstractChartDto chart = new ChartDto(); chart.Type = ChartType.Billboard; chart.Name = "Billboard Hot 100 " + DateTime.Now.ToString("MM-dd-yyyy"); chart.Uid = "Billboard-Hot-100-" + DateTime.Now.ToString("MM-dd-yyyy"); chart.Date = DateTime.Now; HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); doc.LoadHtml(p_chartData); IEnumerable <HtmlAgilityPack.HtmlNode> currNodeItems = doc.DocumentNode.SelectNodes("//li[@class='chart-list__element display--flex']"); //"//*[contains(@class,'chart-list-item')]"); string node_html = ""; int charPosCounter = 1; foreach (var item in currNodeItems) { node_html = item.InnerHtml; HtmlAgilityPack.HtmlDocument itemNode = new HtmlAgilityPack.HtmlDocument(); itemNode.LoadHtml(node_html); HtmlAgilityPack.HtmlNode currNodeSongName = itemNode.DocumentNode.SelectSingleNode("//span[@class='chart-element__information__song text--truncate color--primary']"); HtmlAgilityPack.HtmlNode currNodeArtistName = itemNode.DocumentNode.SelectSingleNode("//span[@class='chart-element__information__artist text--truncate color--secondary']"); AbstractChartSongDto _song = new ChartSongDto(); _song.Name = currNodeSongName.InnerText.Replace("\\n", "").Trim(); _song.Artist = currNodeArtistName.InnerText.Replace("\\n", "").Trim(); _song.Position = charPosCounter; chart.SongsList.Add(_song); chart.SongNum += 1; charPosCounter += 1; } return(chart); }
public AbstractChartDto ParseChart(string p_chartData) { AbstractChartDto chart = new ChartDto(); chart.Type = ChartType.iTunes; chart.Name = "iTunes Hot 100 " + DateTime.Now.ToString("MM-dd-yyyy"); chart.Uid = "iTunes-Hot-100-" + DateTime.Now.ToString("MM-dd-yyyy"); chart.Date = DateTime.Now; HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); doc.LoadHtml(p_chartData); //<div class="section-conten-"> //HtmlAgilityPack.HtmlNode fNode = doc.DocumentNode.SelectSingleNode(""); IEnumerable <HtmlAgilityPack.HtmlNode> currNodeItems = doc.DocumentNode.SelectNodes("//div[@class='col col-song']"); string node_html = ""; int charPosCounter = 1; foreach (var item in currNodeItems) { node_html = item.InnerHtml; HtmlAgilityPack.HtmlDocument itemNode = new HtmlAgilityPack.HtmlDocument(); itemNode.LoadHtml(node_html); HtmlAgilityPack.HtmlNode currNodeSongName = itemNode.DocumentNode.SelectSingleNode("//div[@class='song-name typography-label']"); HtmlAgilityPack.HtmlNode currNodeArtistName = itemNode.DocumentNode.SelectSingleNode("//div[@class='by-line typography-caption']"); AbstractChartSongDto _song = new ChartSongDto(); _song.Name = currNodeSongName.InnerText.Replace("\\n", "").Trim(); _song.Artist = currNodeArtistName.InnerText.Replace("\\n", "").Trim(); _song.Position = charPosCounter; chart.SongsList.Add(_song); chart.SongNum += 1; charPosCounter += 1; } return(chart); }