public List<StreamModel> FindTopViewedStreamsByGame(string gameName) { //http://www.own3d.tv/game/Dota+2 var topStreams = new List<StreamModel>(); string url = String.Format("http://www.own3d.tv/game/{0}", gameName); HtmlWeb web = new HtmlWeb(); HtmlDocument htmlDoc = web.Load(url); var html = htmlDoc.DocumentNode; var container = html.CssSelect("#top_live").First(); var streams = container.Descendants("div") .Where(div => div.GetAttributeValue("class", "").Contains("VIDEOS-1grid-box")); foreach (var stream in streams) { //Let's build out the Own3d model. StreamModel model = new StreamModel(); model.Title = stream.CssSelect("a.small_tn_title_live").First().InnerText.Trim(); model.ChannelUrl = "http://www.own3d.tv" + stream.CssSelect("a.small_tn_title_live").First().GetAttributeValue("href", ""); model.ChannelOwner = stream.CssSelect("a.small_tn_title_live").First().InnerText.Trim(); model.ViewerCount = SanitizeHelper.SanitizeViewCount(stream.CssSelect("span.small_tn_viewers").First().InnerText); model.ThumbnailPreviewUrl = stream.CssSelect("img.previewTN").First().GetAttributeValue("src", ""); topStreams.Add(model); } return topStreams; }
public List<StreamModel> FindTopViewedStreamsByGame(string gameName) { string url = String.Format("http://www.twitch.tv/directory/{0}", gameName); var topStreams = new List<StreamModel>(); HtmlWeb web = new HtmlWeb(); HtmlDocument htmlDoc = web.Load(url); var html = htmlDoc.DocumentNode; var container = html.CssSelect("div.video_grid").First(); var streamElements = container.CssSelect("div.video"); foreach (var streamElement in streamElements) { StreamModel streamModel = new StreamModel(); streamModel.Title = streamElement.CssSelect("p.title").First().InnerText; streamModel.ChannelOwner = streamElement.CssSelect("p.channelname > a").First().InnerText; streamModel.ViewerCount = Convert.ToInt32(streamElement.CssSelect("span.channel_count").First().InnerText.Replace(",", "")); streamModel.ThumbnailPreviewUrl = Helpers.SanitizeHelper.SanitizeThumbnailUrlTwitchtv(streamElement.CssSelect("img.cap").First().GetAttributeValue("src", ""), streamModel.ChannelOwner); streamModel.ChannelUrl = "http://www.twitch.tv" + streamElement.CssSelect("a.thumb").First().GetAttributeValue("href", ""); topStreams.Add(streamModel); } return topStreams; }