public async Task <List <Thread> > GetForumThreadListAsync(Forum forum, int page) { var pageUrl = string.Format(EndPoints.ForumPage, forum.ForumId) + string.Format(EndPoints.PageNumber, page); var result = await _webManager.GetDataAsync(pageUrl); var document = await _webManager.Parser.ParseAsync(result.ResultHtml); ForumHandler.GetForumPageInfo(document, forum); return(ThreadHandler.ParseForumThreadList(document, forum.ForumId)); }
/// <summary> /// Gets the list of threads in a given Forum. /// </summary> /// <param name="forumId">The Forum Id.</param> /// <param name="page">The page of the forum to get.</param> /// <param name="token">A CancellationToken.</param> /// <returns>A ThreadList.</returns> public async Task <ThreadList> GetForumThreadListAsync(int forumId, int page, CancellationToken token = default) { var pageUrl = string.Format(CultureInfo.InvariantCulture, EndPoints.ForumPage, forumId) + string.Format(CultureInfo.InvariantCulture, EndPoints.PageNumber, page); var result = await this.webManager.GetDataAsync(pageUrl, token).ConfigureAwait(false); var document = await this.webManager.Parser.ParseDocumentAsync(result.ResultHtml, token).ConfigureAwait(false); var threadList = new ThreadList(); ForumHandler.GetForumPageInfo(document, threadList); threadList.Threads.AddRange(ThreadHandler.ParseForumThreadList(document)); return(threadList); }
public async Task <List <Thread> > GetBookmarkList(int page) { if (!_webManager.IsAuthenticated) { throw new Exception("User must be authenticated before using this method."); } string url = EndPoints.BookmarksUrl; if (page >= 0) { url = EndPoints.BookmarksUrl + string.Format(EndPoints.PageNumber, page); } var result = await _webManager.GetDataAsync(url); var document = await _webManager.Parser.ParseAsync(result.ResultHtml); return(ThreadHandler.ParseForumThreadList(document, 0)); }
/// <summary> /// Gets a single page of Bookmarked Threads for the authenticated user. /// </summary> /// <param name="page">The bookmark page number.</param> /// <param name="perPage">Amount of bookmarked threads to gather, default is 40.</param> /// <param name="token">A CancellationToken.</param> /// <returns>List of Threads.</returns> public async Task <List <Models.Threads.Thread> > GetBookmarkListAsync(int page, int perPage = 40, CancellationToken token = default) { if (!this.webManager.IsAuthenticated) { throw new UserAuthenticationException(Awful.Core.Resources.ExceptionMessages.UserAuthenticationError); } string url = EndPoints.BookmarksUrl; if (page >= 0) { url = string.Format(CultureInfo.InvariantCulture, EndPoints.BookmarksUrl, perPage) + string.Format(CultureInfo.InvariantCulture, EndPoints.PageNumber, page); } var result = await this.webManager.GetDataAsync(url, token).ConfigureAwait(false); var document = await this.webManager.Parser.ParseDocumentAsync(result.ResultHtml, token).ConfigureAwait(false); return(ThreadHandler.ParseForumThreadList(document)); }