示例#1
0
        private static ForumMetadata ParseForumName(this ForumMetadata data, HtmlNode node)
        {
            if (data != null)
            {
                string name = node.NextSibling.InnerText;
                name = HttpUtility.HtmlDecode(name);
                if (name != String.Empty)
                {
                    name           = name.Replace("-", "");
                    name           = name.Trim();
                    data.ForumName = name;
                }

                if (UseWhitelist && !ForumWhitelist.Contains(name))
                {
                    data = null;
                }

                else if (ForumBlacklist.Contains(name))
                {
                    data = null;
                }
            }

            return(data);
        }
示例#2
0
        public static ForumGroup GetGroup(this ForumMetadata forum)
        {
            string     forumID = forum.ForumID;
            ForumGroup?group   = Grouping.Keys.Where(key => Grouping[key].Contains(forumID)).SingleOrDefault();

            return(!group.HasValue ? ForumGroup.OTHER : group.Value);
        }
示例#3
0
 public static ForumMetadata AsSample(this ForumMetadata forum)
 {
     forum.ForumName  = "Sample Forum";
     forum.ForumID    = "1";
     forum.ForumGroup = ForumGroup.MAIN;
     forum.LevelCount = 1;
     return(forum);
 }
示例#4
0
        private static ForumMetadata ParseForumGroup(this ForumMetadata data)
        {
            if (data != null)
            {
                data.ForumGroup = data.GetGroup();
            }

            return(data);
        }
示例#5
0
        public static ForumPageMetadata Page(this ForumMetadata forum, int pageNumber)
        {
            ForumPageMetadata page = null;

            if (forum is UserBookmarksMetadata)
            {
                page = AwfulContentRequest.Forums.LoadUserBookmarks();
            }
            else
            {
                page = AwfulContentRequest.Forums.LoadForumPage(forum.ForumID, pageNumber);
            }
            return(page);
        }
示例#6
0
        private static ForumMetadata ParseForumLevelCount(this ForumMetadata data, HtmlNode node)
        {
            if (data != null)
            {
                string name = node.NextSibling.InnerText;
                name = HttpUtility.HtmlDecode(name);
                if (name != String.Empty)
                {
                    var tokens     = name.Split(' ');
                    var countToken = tokens[0];
                    int count      = countToken.Length;
                    data.LevelCount = count;
                }
            }

            return(data);
        }
示例#7
0
        private static ForumMetadata CreateForumMetadata(HtmlNode node)
        {
            ForumMetadata result = null;

            var value = node.Attributes["value"].Value;
            int id    = -1;

            // instantiate only if the forum has a valid id
            if (int.TryParse(value, out id) && id > -1)
            {
                result = new ForumMetadata()
                {
                    ForumID = value
                }
                .ParseForumName(node)
                .ParseForumLevelCount(node)
                .ParseForumGroup();
            }

            return(result);
        }