Exemplo n.º 1
0
        public Event GetEvent(Uri uri)
        {
            string id             = _idRegex.Match(uri.ToString()).Groups[1].Value;
            string responseString = DownloadString(uri);

            HtmlDocument document = new HtmlDocument();

            document.LoadHtml(responseString);

            HtmlNode eventElement = document.DocumentNode.SelectNodes("//div[contains(@class, 'pdBlock')]")[0];
            Event    eventObject  = Event.ParseFromElement(eventElement, id);

            HtmlNodeCollection songs = document.DocumentNode.SelectNodes("//div[contains(@class, 'evMissionBlock')]");

            if (songs != null)
            {
                foreach (HtmlNode songElement in songs)
                {
                    EventSong song = EventSong.ParseFromElement(songElement);
                    eventObject.Songs.Add(song);
                }
            }

            return(eventObject);
        }
Exemplo n.º 2
0
        public static EventSong ParseFromElement(HtmlNode element)
        {
            EventSong song = new EventSong();

            HtmlNode missionDetail = element.ChildNodes[3]; // evMissionDetail

            song.SongName   = HtmlEntity.DeEntitize(missionDetail.ChildNodes[1].InnerText.Trim());
            song.SongArtist = HtmlEntity.DeEntitize(missionDetail.ChildNodes[3].InnerText.Trim());

            // If this is a stamp event, this won't be there.
            if (element.ChildNodes.Count >= 8)
            {
                HtmlNode score = element.ChildNodes[7]; // evmScoreList
                int      songBestScore;
                if (int.TryParse(score.ChildNodes[3].InnerText.Trim(), out songBestScore))
                {
                    song.SongBestScore = songBestScore;
                }
                else
                {
                    song.SongBestScore = 0;
                }

                int songTotalScore;
                if (int.TryParse(score.ChildNodes[7].InnerText.Trim(), out songTotalScore))
                {
                    song.SongTotalScore = songBestScore;
                }
                else
                {
                    song.SongTotalScore = 0;
                }
            }

            return(song);
        }