private void GetListThread() { listThread = new List <ThreadListModel>(); homeTd = new List <HomeTdModel>(); homeTd.Clear(); listThread.Clear(); // Get all subBox List <HtmlNode> allNodeTitle, allNodeThread; HtmlNode nodeTitle, nodeID, nodeTest; allNodeTitle = doc1.DocumentNode.Descendants("div").Where(n => n.GetAttributeValue("class", "") == "nodeText").ToList(); foreach (var item in allNodeTitle) { HomeTdModel htdlt = new HomeTdModel(); //Get list Box nodeTitle = item.Descendants("h3").FirstOrDefault(); htdlt.NameTd = nodeTitle.InnerText.Trim(); htdlt.NameTd = HtmlEntity.DeEntitize(htdlt.NameTd).ToString(); nodeID = nodeTitle.Descendants("a").FirstOrDefault(); htdlt.IdTd = nodeID.Attributes["href"].Value.ToString(); homeTd.Add(htdlt); } ////////////////////// //Get listthread ///////////////// nodeTest = (from form in doc1.DocumentNode.Descendants("form") where form.GetAttributeValue("class", "") == "DiscussionList InlineModForm" select form).FirstOrDefault(); allNodeThread = nodeTest.Descendants("ol").Where(m => m.GetAttributeValue("class", "") == "discussionListItems").ToList(); foreach (var item in allNodeThread) { List <HtmlNode> aa = item.Elements("li").ToList(); foreach (var itemThread in aa) { ThreadListModel thread = new ThreadListModel(); //HtmlNode t = itemThread.Element("li"); HtmlNode title = (from div in itemThread.Descendants("a") where div.GetAttributeValue("class", "") == "PreviewTooltip" select div).FirstOrDefault(); thread.ThreadName = HtmlEntity.DeEntitize(title.InnerText.Trim()); thread.ThreadId = title.Attributes["href"].Value.ToString(); HtmlNode username = (from a in itemThread.Descendants("a") where a.GetAttributeValue("class", "") == "username" select a).FirstOrDefault(); thread.ThreadCreate = HtmlEntity.DeEntitize(username.InnerText.Trim()); listThread.Add(thread); } } lvListThread.ItemsSource = listThread; lvListThread.IsEnabled = true; lt_listview_td.ItemsSource = homeTd; lt_listview_td.IsEnabled = true; }
private async void GetListThread() { listThread = new List <ThreadListModel>(); listThread.Clear(); await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.High, () => { List <HtmlNode> nodeTd, nodeDivTitle, nodeTitle, nodeSpan; HtmlNode nodeLastPost, nodeReply, nodeViews; List <HtmlNode> AllNodeThread = doc.DocumentNode.Descendants("tbody").Where(n => n.GetAttributeValue("id", "") == "threadbits_forum_" + idBox).First().Elements("tr").ToList(); foreach (HtmlNode c in AllNodeThread) { ThreadListModel thread = new ThreadListModel(); thread.BackgroundHomeColor = appSetting.BackgroundHomeColor; thread.TextblockExtraThreadColor = appSetting.TextblockExtraThreadColor; thread.TextblockCreateUserColor = appSetting.TextblockCreateUserColor; //set Foreground and Sticky HtmlNode ForeStick = (from foreground in c.Descendants("img") where (foreground.GetAttributeValue("src", "") == "images/misc/sticky.gif") select foreground).FirstOrDefault(); if (ForeStick != null) { thread.Stick = "/Assets/sticky.png"; thread.HeightStick = "18"; thread.WidthStick = "18"; thread.ForegroundStick = "#FE2E2E"; thread.MarginStick = "18,0,0,0"; } else { if (appSetting.ThemeSetting == "Dark") { thread.ForegroundStick = "#3399ff"; } else { thread.ForegroundStick = "#23497C"; } thread.Stick = null; thread.HeightStick = null; thread.WidthStick = null; thread.MarginStick = null; } nodeTd = c.Elements("td").ToList(); if (nodeTd[1].Attributes["class"].Value == "alt2") { nodeTd.RemoveAt(1); } if (nodeTd[2].InnerText.Contains("Thread deleted")) { continue; } //get last user post nodeLastPost = nodeTd[2]; thread.TimePost = HtmlEntity.DeEntitize(nodeLastPost.InnerText.Trim()); string[] s = thread.TimePost.Split(); thread.TimePost = "Lastpost: " + string.Join(" ", s); //Get Count Reply nodeReply = nodeTd[3]; thread.CountReply = nodeReply.InnerText.Trim(); //get Count Views nodeViews = nodeTd[4]; thread.CountViews = nodeViews.InnerText.Trim(); //get titlepost // nodeDivTitle chua danh sach the "div" cua nodeTd[1] // nodeDivTitle = nodeTd[1].Elements("div").ToList(); nodeTitle = nodeDivTitle[0].Elements("a").ToList(); foreach (HtmlNode title in nodeTitle) { thread.ThreadName += title.InnerText; } thread.ThreadName = HtmlEntity.DeEntitize(thread.ThreadName.Trim()); // get user create nodeSpan = nodeDivTitle[1].Elements("span").ToList(); if (nodeSpan.Count() == 2) { thread.ThreadCreate = "Người tạo: " + nodeSpan[1].InnerText; HtmlNode img = nodeSpan[0].Descendants("img").First(); thread.rating = "https://vozforums.com/" + img.Attributes["src"].Value.ToString(); } else { thread.ThreadCreate = "Người tạo: " + nodeSpan[0].InnerText; } //get id thread thread.ThreadId = nodeTd[0].Attributes["id"].Value.Remove(0, 20) + "|" + thread.CountReply.Replace(",", string.Empty); //get extra title String extra = nodeTd[1].Attributes["title"].Value.ToString().Trim(); extra = HtmlEntity.DeEntitize(extra); if (extra.Length > MaxLength) { extra = extra.Substring(0, MaxLength); } string[] a = extra.Split(); thread.extraTitle = string.Join(" ", a); listThread.Add(thread); } lb_views.ItemsSource = listThread; lb_views.IsEnabled = true; pgRing.IsActive = false; }); }