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); }
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); }
public static ForumMetadata AsSample(this ForumMetadata forum) { forum.ForumName = "Sample Forum"; forum.ForumID = "1"; forum.ForumGroup = ForumGroup.MAIN; forum.LevelCount = 1; return(forum); }
private static ForumMetadata ParseForumGroup(this ForumMetadata data) { if (data != null) { data.ForumGroup = data.GetGroup(); } return(data); }
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); }
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); }
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); }