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