Exemple #1
0
        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;
        }
Exemple #2
0
        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;
            });
        }