diff --git a/python3_anticaptcha/AntiCaptchaControl.py b/python3_anticaptcha/AntiCaptchaControl.py index 61e0fa8..477dfdd 100644 --- a/python3_anticaptcha/AntiCaptchaControl.py +++ b/python3_anticaptcha/AntiCaptchaControl.py @@ -1,7 +1,7 @@ import requests import aiohttp -from python3_anticaptcha import get_balance_url, incorrect_captcha_url +from python3_anticaptcha import get_balance_url, incorrect_captcha_url, get_queue_status_url class AntiCaptchaControl: @@ -21,25 +21,59 @@ class AntiCaptchaControl: return True def get_balance(self): - ''' + """ Получение баланса аккаунта :return: Возвращает актуальный баланс - ''' - answer = requests.post(get_balance_url, json = {'clientKey': self.ANTICAPTCHA_KEY}) + """ + answer = requests.post(get_balance_url, json={'clientKey': self.ANTICAPTCHA_KEY}) return answer.json() def complaint_on_result(self, reported_id: int): - ''' + """ Позволяет отправить жалобу на неправильно решённую капчу. :param reported_id: Отправляете ID капчи на которую нужно пожаловаться :return: Возвращает True/False, в зависимости от результата - ''' + """ payload = {'clientKey': self.ANTICAPTCHA_KEY, 'taskId': reported_id, } - answer = requests.post(incorrect_captcha_url, json = payload) + answer = requests.post(incorrect_captcha_url, json=payload) + + return answer.json() + + def get_queue_status(self, queue_id: int): + """ + Получение информации о загрузке очереди, в зависимости от ID очереди + + Метод позволяет определить, нсколько в данный момент целесообразно загружать новое задание в очередь + Данные в выдаче кешируются на 10 секунд + + Список ID очередей: + 1 - стандартная ImageToText, язык английский + 2 - стандартная ImageToText, язык русский + 5 - Recaptcha NoCaptcha + 6 - Recaptcha Proxyless + 7 - Funcaptcha + 10 - Funcaptcha Proxyless + + Пример выдачи ответа: + { + "waiting":242, + "load":60.33, + "bid":"0.0008600982", + "speed":10.77, + "total": 610 + } + :param queue_id: Номер очереди + :return: JSON-объект + """ + payload = { + "queueId": queue_id + } + + answer = requests.post(get_queue_status_url, json=payload) return answer.json() @@ -61,23 +95,58 @@ class aioAntiCaptchaControl: return True async def get_balance(self): - ''' + """ Получение баланса аккаунта :return: Возвращает актуальный баланс - ''' + """ async with aiohttp.ClientSession() as session: async with session.post(get_balance_url, json={'clientKey': self.ANTICAPTCHA_KEY}) as resp: return await resp.json() async def complaint_on_result(self, reported_id: int): - ''' + """ Позволяет отправить жалобу на неправильно решённую капчу. :param reported_id: Отправляете ID капчи на которую нужно пожаловаться :return: Возвращает True/False, в зависимости от результата - ''' + """ payload = {'clientKey': self.ANTICAPTCHA_KEY, 'taskId': reported_id, } async with aiohttp.ClientSession() as session: async with session.post(incorrect_captcha_url, json=payload) as resp: return await resp.json() + + async def get_queue_status(self, queue_id: int): + """ + Получение информации о загрузке очереди, в зависимости от ID очереди + + Метод позволяет определить, нсколько в данный момент целесообразно загружать новое задание в очередь + Данные в выдаче кешируются на 10 секунд + + Список ID очередей: + 1 - стандартная ImageToText, язык английский + 2 - стандартная ImageToText, язык русский + 5 - Recaptcha NoCaptcha + 6 - Recaptcha Proxyless + 7 - Funcaptcha + 10 - Funcaptcha Proxyless + + Пример выдачи ответа: + { + "waiting":242, + "load":60.33, + "bid":"0.0008600982", + "speed":10.77, + "total": 610 + } + :param queue_id: Номер очереди + :return: JSON-объект + """ + payload = { + "queueId": queue_id + } + + async with aiohttp.ClientSession() as session: + async with session.post(get_queue_status_url, json=payload) as resp: + return await resp.json() + diff --git a/python3_anticaptcha/__init__.py b/python3_anticaptcha/__init__.py index 9a956b2..88c2f78 100644 --- a/python3_anticaptcha/__init__.py +++ b/python3_anticaptcha/__init__.py @@ -1,5 +1,6 @@ from .config import create_task_url, app_key, get_balance_url, incorrect_captcha_url, \ HOST, PORT, RTMQ_USERNAME, RTMQ_PASSWORD, RTMQ_HOST, RTMQ_PORT, RTMQ_VHOST, \ - get_result_url + get_result_url, get_queue_status_url from .get_answer import get_sync_result, get_async_result from .errors import ParamError, ReadError, IdGetError +