Exemplo n.º 1
0
        public override void Execute(object parameter)
        {
            if (CanExecute(parameter))
            {
                int id = int.Parse(parameter.ToString());
                SAForum forum = new SAForum() { ID = id };

                Navigating.Fire(this);
                NavigateToForum(forum);
            }
        }
Exemplo n.º 2
0
        public static SAForum Build(HtmlNode node)
        {
            var url = node.Attributes["href"].Value;
            var tokens = url.Split('=');

            SAForum forum = new SAForum();

            forum.ID = Int32.Parse(tokens.Last());
            forum.ForumName = node.InnerText.Trim();
            forum.ForumName = ContentFilter.Censor(forum.ForumName);
            return forum;
        }
Exemplo n.º 3
0
        private void NavigateToForum(SAForum forum)
        {
            if (forum == null)
            {
                MessageBox.Show("Could not locate valid forum.", ":(", MessageBoxButton.OK);
                return;
            }

            PhoneApplicationService.Current.State["Forum"] = forum;
            var frame = App.Current.RootVisual as PhoneApplicationFrame;
            if (frame != null)
            {
                string uri = "/ThreadList.xaml?ID=" + forum.ID;
                frame.Navigate(new Uri(uri, UriKind.RelativeOrAbsolute));
            }
        }
Exemplo n.º 4
0
        private List<SAForum> ParseData(HtmlDocument doc)
        {
            if(doc == null)
                return null;

            var parent = doc.DocumentNode;
            List<SAForum> forums = new List<SAForum>(100);

            var selectNode = parent.Descendants("select")
                .Where(node => node.GetAttributeValue("name", "").Equals("forumid"))
                .FirstOrDefault();

            if (selectNode != null)
            {
                var forumNodes = selectNode.Descendants("option").ToArray();

                foreach (var node in forumNodes)
                {
                    if (worker.CancellationPending)
                        return null;

                    var value = node.Attributes["value"].Value;
                    int id = 0;
                    if (Int32.TryParse(value, out id) && id > 0)
                    {
                        string name = node.NextSibling.InnerText;
                        name = HttpUtility.HtmlDecode(name);
                        if (name != String.Empty)
                        {
                            name = name.Replace("-", "");
                            name = name.Trim();

                            if (!forumBlackList.Contains(name))
                            {
                                var forum = new SAForum() { ID = id, ForumName = name };
                                Data.SAForumDB.SetDefaultMapping(forum);
                                forums.Add(forum);
                            }
                        }
                    }
                }
            }

            return forums;
        }
Exemplo n.º 5
0
        public static void SetDefaultMapping(SAForum forum)
        {
            int id = forum.ID;
            foreach (var subforum in DefaultSubforums)
            {
                if (subforum.ForumIDs.Contains(id))
                {
                    subforum.Forums.Add(forum);
                    return;
                }
            }

            if (forum.Subforum == null) { forum.Subforum = subforums[0]; }
        }