Esempio n. 1
0
        public async Task <TaskResultModel> PendingForResult(int taskId, CancellationToken token = default)
        {
            var content = new RequestForResultTask()
            {
                clientKey = _userKey,
                taskId    = taskId
            };


            var request = new RestRequest("getTaskResult");

            request.AddJsonBody(content);
            request.Method = Method.POST;

            var result = await _client.CreatePollingBuilder <TaskResultModel>(request).TriesLimit(_options.PendingCount)
                         .WithTimeoutSeconds(5).ActivatePollingAsync(
                response =>
            {
                if (response.Data.status == "ready" || response.Data.errorId != 0)
                {
                    return(PollingAction.Break);
                }

                return(PollingAction.ContinuePolling);
            });

            return(result.Data);
        }
Esempio n. 2
0
        public async Task <IRestResponse <TwoCaptchaResponse> > GetSolution(string id)
        {
            var request = new RestRequest("res.php")
            {
                Method = Method.POST
            };

            request.AddQueryParameters(new Dictionary <string, string>()
            {
                ["id"]     = id,
                ["key"]    = _userKey,
                ["action"] = "get",
                ["json"]   = "1"
            });

            var result = await _client.CreatePollingBuilder <TwoCaptchaResponse>(request).TriesLimit(_options.PendingCount).ActivatePollingAsync(
                response => response.Data.request == "CAPCHA_NOT_READY" ? PollingAction.ContinuePolling : PollingAction.Break);

            return(result);
        }