Example #1
0
        protected void ExtractHotBoardEntries(HtmlNode rootNode)
        {
            IEnumerable<HtmlNode> linkNodes = rootNode.Descendants("a");

            foreach (HtmlNode linkNode in linkNodes)
            {
                MitbbsBoardLinkMobile boardLink = new MitbbsBoardLinkMobile();
                boardLink.ParentUrl = Url;

                if (boardLink.LoadFromHtml(linkNode))
                {
                    HotBoards.Add(MitbbsBoardLink.CreateFromMobileLink(boardLink));
                }
            }
        }
Example #2
0
        public static MitbbsBoardLinkBase CreateFromMobileLink(MitbbsBoardLinkMobile mobileLink)
        {
            //return mobileLink;

            if (mobileLink.BoardName != null)
            {
                String fullUrl = String.Format(App.Settings.BuildUrl(fullBoardLinkTemplate), mobileLink.BoardName);

                return new MitbbsBoardLink()
                {
                    Name = mobileLink.Name,
                    Url = fullUrl,
                    BoardName = mobileLink.BoardName
                };
            }

            return mobileLink;
        }
Example #3
0
        public static MitbbsLink CreateLinkInstance(HtmlNode rootNode, String ParentUrl)
        {
            MitbbsLink generalLink = new MitbbsLink();
            MitbbsLink linkInstance = null;

            if (!generalLink.LoadFromHtml(rootNode))
            {
                return null;
            }

            String url = generalLink.Url;

            if (url.StartsWith(_boardEssenceUrlPrefix))
            {
                linkInstance = new MitbbsBoardEssenceLink();
            }
            else if (url.StartsWith(_topicEssenceUrlPrefix))
            {
                linkInstance = new MitbbsTopicEssenceLink();
            }
            else if (url.StartsWith(_boardGroupUrlPrefix))
            {
                linkInstance = new MitbbsBoardGroupLink();
            }
            else if (url.StartsWith(_boardUrlPrefix))
            {
                linkInstance = new MitbbsBoardLinkMobile();
            }
            else if (url.StartsWith(_topicUrlPrefix))
            {
                linkInstance = new MitbbsSimpleTopicLinkMobile();
            }
            else
            {
                return null;
            }

            linkInstance.ParentUrl = ParentUrl;
            if (!linkInstance.LoadFromHtml(rootNode))
            {
                return null;
            }

            if (linkInstance is MitbbsBoardLinkMobile)
            {
                linkInstance = MitbbsBoardLink.CreateFromMobileLink(linkInstance as MitbbsBoardLinkMobile);
            }

            return linkInstance;
        }
Example #4
0
        public bool LoadFromHtml(HtmlNode rootNode, DataLoadedEventArgs loadedArgs)
        {
            bool isUserHomeLoaded = false;

            try
            {
                IEnumerable<HtmlNode> divNodes = rootNode.Descendants("div");
                foreach (HtmlNode divNode in divNodes)
                {
                    if (divNode.Attributes["id"].Value == "wenzhangyudu")
                    {
                        HtmlNodeCollection liNodes = divNode.ChildNodes[1].ChildNodes;
                        for (int i = 0; i < liNodes.Count; i++)
                        {
                            HtmlNode liNode = liNodes[i];
                            if (liNode.Name == "li")
                            {
                                String bText = "";
                                IEnumerable<HtmlNode> bNodes = liNode.Descendants("b");
                                foreach (HtmlNode bNode in bNodes)
                                {
                                    bText = HtmlUtilities.GetPlainHtmlText(bNode.FirstChild.InnerText);
                                    break;
                                }

                                IEnumerable<HtmlNode> linkNodes = liNode.Descendants("a");

                                foreach (HtmlNode linkNode in linkNodes)
                                {
                                    String linkText = HtmlUtilities.GetPlainHtmlText(linkNode.FirstChild.InnerText);

                                    if (linkText == "站内邮箱")
                                    {
                                        MailboxUrl = linkNode.Attributes["href"].Value;
                                        isUserHomeLoaded = true;
                                    }
                                    else if(bText != "")
                                    {
                                        if (bText == "我的讨论区:")
                                        {
                                            MitbbsBoardLinkMobile boardLink = new MitbbsBoardLinkMobile();
                                            boardLink.ParentUrl = Url;
                                            if (boardLink.LoadFromHtml(linkNode))
                                            {
                                                MyBoards.Add(MitbbsBoardLink.CreateFromMobileLink(boardLink));
                                            }
                                        }
                                        else if (bText == "我的最新文章:")
                                        {
                                            MitbbsSimpleTopicLinkMobile topicLink = new MitbbsSimpleTopicLinkMobile();
                                            topicLink.ParentUrl = Url;
                                            if (topicLink.LoadFromHtml(linkNode))
                                            {
                                                MyArticles.Add(MitbbsSimpleTopicLink.CreateFromMobileLink(topicLink));
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch(Exception e)
            {
                loadedArgs.Error = e;
            }

            return isUserHomeLoaded;
        }