コード例 #1
0
        public async Task <Post> GetPostAsync(int postId)
        {
            var baseUri = string.Format(EndPoints.ShowPost, postId);
            var result  = await _webManager.GetDataAsync(baseUri);

            var document = await _webManager.Parser.ParseAsync(result.ResultHtml);

            var post = document.QuerySelector("table.post");

            return(PostHandler.ParsePost(document, post));
        }
コード例 #2
0
        public async Task <Post> GetPostAsync(int postId, CancellationToken token = default)
        {
            var baseUri = string.Format(CultureInfo.InvariantCulture, EndPoints.ShowPost, postId);
            var result  = await this.webManager.GetDataAsync(baseUri, token).ConfigureAwait(false);

            var document = await this.webManager.Parser.ParseDocumentAsync(result.ResultHtml, token).ConfigureAwait(false);

            var post = document.QuerySelector("table.post");

            return(PostHandler.ParsePost(document, post));
        }
コード例 #3
0
        public async Task <Post> GetPrivateMessageAsync(PrivateMessage message)
        {
            if (!_webManager.IsAuthenticated)
            {
                throw new Exception("User must be authenticated before using this method.");
            }
            var result = await _webManager.GetDataAsync(EndPoints.PrivateMessages + $"?action=show&privatemessageid={message.Id}");

            var document = await _webManager.Parser.ParseAsync(result.ResultHtml);

            message.Post = PostHandler.ParsePost(document, document.Body);
            return(message.Post);
        }
コード例 #4
0
        public async Task <Post> GetPrivateMessageAsync(PrivateMessage message, CancellationToken token = default)
        {
            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            if (!this.webManager.IsAuthenticated)
            {
                throw new UserAuthenticationException(Awful.Core.Resources.ExceptionMessages.UserAuthenticationError);
            }

            var result = await this.webManager.GetDataAsync(EndPoints.PrivateMessages + $"?action=show&privatemessageid={message.Id}", token).ConfigureAwait(false);

            var document = await this.webManager.Parser.ParseDocumentAsync(result.ResultHtml, token).ConfigureAwait(false);

            message.Post = PostHandler.ParsePost(document, document.Body);
            return(message.Post);
        }