示例#1
0
 public CreateTaskRequest(string clientKey, ICreateTask createTask, string languagePool, int softId)
 {
     ClientKey    = clientKey;
     CreateTask   = createTask;
     LanguagePool = languagePool;
     SoftId       = softId;
 }
示例#2
0
 public TaskController(IRetrieveTask retrieveTask,
                       ICreateTask createTask,
                       IUpdateTask updateTask,
                       IDeleteTask deleteTask,
                       IDeleteBulk deleteBulk,
                       IMoveTask moveTask,
                       ITaskStatus taskStatus)
 {
     _retrieveTask = retrieveTask;
     _createTask   = createTask;
     _updateTask   = updateTask;
     _deleteTask   = deleteTask;
     _deleteBulk   = deleteBulk;
     _moveTask     = moveTask;
     _taskStatus   = taskStatus;
 }
示例#3
0
        public static async Task <GetTaskResponse> GetSolvedCaptcha(ICreateTask task)
        {
            GetTaskResponse ret;

            if (!Queue.TryDequeue(out ret))
            {
                AntiCaptchaKey key = GetValidAntiCaptchaKey();
                ret = await key.GetSolvedCaptcha(task);
            }

            if (ret.UsedCount > AntiCaptchaGlobals.CaptchaRetryLimit)
            {
                AntiCaptchaKey key = GetValidAntiCaptchaKey();
                ret = await key.GetSolvedCaptcha(task);
            }

            ret.IncreaseUsedCount();
            return(ret);
        }
        private static async Task <CreateTaskResponse> CreateCaptchaTask(AntiCaptchaKey antiCaptchaKey,
                                                                         ICreateTask createTask)
        {
            CreateTaskRequest request =
                new CreateTaskRequest(antiCaptchaKey.ClientKey, createTask, AntiCaptchaGlobals.SoftId);
            string requestJson = JsonConvert.SerializeObject(request);

            using (HttpRequestMessage httpRequest =
                       new HttpRequestMessage(HttpMethod.Post, AntiCaptchaEndpoints.CreateTaskUrl))
            {
                httpRequest.Content = new StringContent(requestJson, Encoding.UTF8, "application/json");

                using (HttpResponseMessage httpResponse = await AntiCaptchaGlobals.HttpClient.SendAsync(httpRequest))
                {
                    httpResponse.EnsureSuccessStatusCode();
                    string value = await httpResponse.Content.ReadAsStringAsync();

                    CreateTaskResponse ret = JsonConvert.DeserializeObject <CreateTaskResponse>(value);
                    return(ret);
                }
            }
        }
        public async Task <GetTaskResponse> GetSolvedCaptcha(ICreateTask createTask)
        {
            AntiCaptchaQueueStats.DecrementWaiting();

            CreateTaskResponse createTaskResponse = await CreateCaptchaTask(this, createTask);

            lock (_taskLockObject)
            {
                _tasks.Add(createTaskResponse);
            }


            if (createTaskResponse.ErrorId > 0)
            {
                throw new AntiCaptchaException($"{createTaskResponse.ErrorCode}:{createTaskResponse.ErrorDescription}");
            }


            while (createTaskResponse.TaskResponse == null ||
                   createTaskResponse.TaskResponse.Status.Equals("processing"))
            {
                await Task.Delay(10000);

                createTaskResponse.TaskResponse = await GetCaptchaTask(this, createTaskResponse);

                if (createTaskResponse.TaskResponse == null || createTaskResponse.TaskResponse.ErrorId <= 0)
                {
                    continue;
                }

                createTaskResponse.TaskResponse.Status = "error";

                throw new AntiCaptchaException(
                          $"{createTaskResponse.TaskResponse.ErrorCode}:{createTaskResponse.TaskResponse.ErrorDescription}");
            }

            return(createTaskResponse.TaskResponse);
        }
示例#6
0
 public CreateTaskRequest(string clientKey, ICreateTask createTask, string languagePool)
 {
     ClientKey    = clientKey;
     CreateTask   = createTask;
     LanguagePool = languagePool;
 }
示例#7
0
 public CreateTaskRequest(string clientKey, ICreateTask createTask, int softId)
 {
     ClientKey  = clientKey;
     CreateTask = createTask;
     SoftId     = softId;
 }
示例#8
0
 public CreateTaskRequest(string clientKey, ICreateTask createTask)
 {
     ClientKey  = clientKey;
     CreateTask = createTask;
 }