コード例 #1
0
        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);
        }
コード例 #2
0
        //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);
        }
コード例 #3
0
        //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);
        }
コード例 #4
0
        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);
        }