diff --git a/python3_anticaptcha/CustomCaptchaTask.py b/python3_anticaptcha/CustomCaptchaTask.py index 33e83df..5a407d1 100644 --- a/python3_anticaptcha/CustomCaptchaTask.py +++ b/python3_anticaptcha/CustomCaptchaTask.py @@ -42,7 +42,14 @@ class CustomCaptchaTask: # пайлоад для получения ответа сервиса self.result_payload = {"clientKey": anticaptcha_key} - + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_value, traceback): + if exc_type: + return False + return True # Работа с капчёй def captcha_handler(self, imageUrl: str): @@ -109,6 +116,14 @@ class aioCustomCaptchaTask: # пайлоад для получения ответа сервиса self.result_payload = {"clientKey": anticaptcha_key} + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_value, traceback): + if exc_type: + return False + return True # Работа с капчёй async def captcha_handler(self, imageUrl: str): diff --git a/python3_anticaptcha/FunCaptchaTask.py b/python3_anticaptcha/FunCaptchaTask.py index 4d495bc..3f8d298 100644 --- a/python3_anticaptcha/FunCaptchaTask.py +++ b/python3_anticaptcha/FunCaptchaTask.py @@ -40,6 +40,14 @@ class FunCaptchaTask: if kwargs: for key in kwargs: self.task_payload['task'].update({key: kwargs[key]}) + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_value, traceback): + if exc_type: + return False + return True # Работа с капчёй def captcha_handler(self, websiteURL: str, websitePublicKey: str, **kwargs): @@ -105,6 +113,14 @@ class aioFunCaptchaTask: if kwargs: for key in kwargs: self.task_payload['task'].update({key: kwargs[key]}) + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_value, traceback): + if exc_type: + return False + return True # Работа с капчёй async def captcha_handler(self, websiteURL: str, websitePublicKey: str): diff --git a/python3_anticaptcha/FunCaptchaTaskProxyless.py b/python3_anticaptcha/FunCaptchaTaskProxyless.py index e2d7abc..68cf8dd 100644 --- a/python3_anticaptcha/FunCaptchaTaskProxyless.py +++ b/python3_anticaptcha/FunCaptchaTaskProxyless.py @@ -35,6 +35,14 @@ class FunCaptchaTaskProxyless: # пайлоад для получения ответа сервиса self.result_payload = {"clientKey": anticaptcha_key} + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_value, traceback): + if exc_type: + return False + return True + # Работа с капчёй def captcha_handler(self, websiteURL: str, websitePublicKey: str, **kwargs): """ diff --git a/python3_anticaptcha/GeeTestTask.py b/python3_anticaptcha/GeeTestTask.py index 54d7e51..7fc01c5 100644 --- a/python3_anticaptcha/GeeTestTask.py +++ b/python3_anticaptcha/GeeTestTask.py @@ -45,6 +45,13 @@ class GeeTestTask: # пайлоад для получения ответа сервиса self.result_payload = {"clientKey": anticaptcha_key} + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_value, traceback): + if exc_type: + return False + return True # Работа с капчёй def captcha_handler(self, challenge: str): @@ -113,6 +120,14 @@ class aioGeeTestTask: # пайлоад для получения ответа сервиса self.result_payload = {"clientKey": anticaptcha_key} + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_value, traceback): + if exc_type: + return False + return True # Работа с капчёй async def captcha_handler(self, challenge: str): diff --git a/python3_anticaptcha/GeeTestTaskProxyless.py b/python3_anticaptcha/GeeTestTaskProxyless.py index bf8568a..8ee6ee2 100644 --- a/python3_anticaptcha/GeeTestTaskProxyless.py +++ b/python3_anticaptcha/GeeTestTaskProxyless.py @@ -38,6 +38,13 @@ class GeeTestTaskProxyless: # пайлоад для получения ответа сервиса self.result_payload = {"clientKey": anticaptcha_key} + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_value, traceback): + if exc_type: + return False + return True # Работа с капчёй def captcha_handler(self, challenge: str): @@ -99,6 +106,14 @@ class aioGeeTestTaskProxyless: # пайлоад для получения ответа сервиса self.result_payload = {"clientKey": anticaptcha_key} + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_value, traceback): + if exc_type: + return False + return True # Работа с капчёй async def captcha_handler(self, challenge: str): diff --git a/python3_anticaptcha/ImageToTextTask.py b/python3_anticaptcha/ImageToTextTask.py index 95331c1..615894e 100644 --- a/python3_anticaptcha/ImageToTextTask.py +++ b/python3_anticaptcha/ImageToTextTask.py @@ -62,8 +62,16 @@ class ImageToTextTask: if kwargs: for key in kwargs: self.task_payload['task'].update({key: kwargs[key]}) + + def __enter__(self): + return self - def image_temp_saver(self, content: bytes): + def __exit__(self, exc_type, exc_value, traceback): + if exc_type: + return False + return True + + def __image_temp_saver(self, content: bytes): ''' Метод сохраняет файл изображения как временный и отправляет его сразу на сервер для расшифровки. :return: Возвращает ID капчи @@ -75,7 +83,7 @@ class ImageToTextTask: captcha_id = requests.post(create_task_url, json = self.task_payload).json() return captcha_id - def image_const_saver(self, content: bytes): + def __image_const_saver(self, content: bytes): ''' Метод создаёт папку и сохраняет в неё изображение, затем передаёт его на расшифровку и удалет файл. :return: Возвращает ID капчи @@ -103,7 +111,7 @@ class ImageToTextTask: return captcha_id - def read_captcha_image_file(self, content: bytes, content_type: str = "file"): + def __read_captcha_image_file(self, content: bytes, content_type: str = "file"): """ Функция отвечает за чтение уже сохранённого файла или файла в уодировке base64 :param content: Параметр строка-путь указывающий на изображение капчи для отправки её на сервер @@ -141,16 +149,16 @@ class ImageToTextTask: :return: Возвращает весь ответ сервера JSON-строкой. ''' if captcha_file: - captcha_id = self.read_captcha_image_file(captcha_file, content_type="file") + captcha_id = self.__read_captcha_image_file(captcha_file, content_type="file") elif captcha_base64: - captcha_id = self.read_captcha_image_file(captcha_base64, content_type="base64") + captcha_id = self.__read_captcha_image_file(captcha_base64, content_type="base64") elif captcha_link: content = requests.get(captcha_link, **kwargs).content # согласно значения переданного параметра выбираем функцию для сохранения изображения if self.save_format == 'const': - captcha_id = self.image_const_saver(content) + captcha_id = self.__image_const_saver(content) elif self.save_format == 'temp': - captcha_id = self.image_temp_saver(content) + captcha_id = self.__image_temp_saver(content) else: raise ParamError(additional_info="""Wrong 'save_format' parameter. Valid formats: 'const' or 'temp'.\n Неправильный 'save_format' параметр. Возможные форматы: 'const' или 'temp'.""") @@ -224,8 +232,16 @@ class aioImageToTextTask: if kwargs: for key in kwargs: self.task_payload['task'].update({key: kwargs[key]}) - - async def image_temp_saver(self, captcha_link: str): + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_value, traceback): + if exc_type: + return False + return True + + async def __image_temp_saver(self, captcha_link: str): ''' Метод сохраняет файл изображения как временный и отправляет его сразу на сервер для расшифровки. :return: Возвращает ID капчи @@ -242,7 +258,7 @@ class aioImageToTextTask: async with session.post(create_task_url, json=self.task_payload) as resp: return await resp.json() - async def image_const_saver(self, captcha_link: str): + async def __image_const_saver(self, captcha_link: str): ''' Метод создаёт папку и сохраняет в неё изображение, затем передаёт его на расшифровку и удалет файл. :return: Возвращает ID капчи @@ -277,7 +293,7 @@ class aioImageToTextTask: os.remove(os.path.join(img_path, "im-{0}.png".format(image_hash))) return captcha_id - async def read_captcha_image_file(self, content: bytes, content_type: str = 'file'): + async def __read_captcha_image_file(self, content: bytes, content_type: str = 'file'): """ Функция отвечает за чтение уже сохранённого файла или файла в уодировке base64 :param content: Параметр строка-путь указывающий на изображение капчи для отправки её на сервер @@ -314,15 +330,15 @@ class aioImageToTextTask: ''' # если был передан линк на локальный скачаный файл if captcha_file: - captcha_id = await self.read_captcha_image_file(captcha_file, content_type="file") + captcha_id = await self.__read_captcha_image_file(captcha_file, content_type="file") elif captcha_base64: - captcha_id = await self.read_captcha_image_file(captcha_base64, content_type="base64") + captcha_id = await self.__read_captcha_image_file(captcha_base64, content_type="base64") elif captcha_link: # согласно значения переданного параметра выбираем функцию для сохранения изображения if self.save_format == 'const': - captcha_id = await self.image_const_saver(captcha_link) + captcha_id = await self.__image_const_saver(captcha_link) elif self.save_format == 'temp': - captcha_id = await self.image_temp_saver(captcha_link) + captcha_id = await self.__image_temp_saver(captcha_link) else: raise ParamError(additional_info="""Wrong 'save_format' parameter. Valid formats: 'const' or 'temp'.\n Неправильный 'save_format' параметр. Возможные форматы: 'const' или 'temp'.""") diff --git a/python3_anticaptcha/NoCaptchaTask.py b/python3_anticaptcha/NoCaptchaTask.py index 30efc6b..4fd068f 100644 --- a/python3_anticaptcha/NoCaptchaTask.py +++ b/python3_anticaptcha/NoCaptchaTask.py @@ -43,6 +43,14 @@ class NoCaptchaTask: for key in kwargs: self.task_payload['task'].update({key: kwargs[key]}) + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_value, traceback): + if exc_type: + return False + return True + # Работа с капчей def captcha_handler(self, websiteURL: str, websiteKey: str): """ @@ -106,6 +114,14 @@ class aioNoCaptchaTask: if kwargs: for key in kwargs: self.task_payload['task'].update({key: kwargs[key]}) + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_value, traceback): + if exc_type: + return False + return True # Работа с капчей async def captcha_handler(self, websiteURL: str, websiteKey: str): diff --git a/python3_anticaptcha/NoCaptchaTaskProxyless.py b/python3_anticaptcha/NoCaptchaTaskProxyless.py index 12ff39d..e508a2a 100644 --- a/python3_anticaptcha/NoCaptchaTaskProxyless.py +++ b/python3_anticaptcha/NoCaptchaTaskProxyless.py @@ -41,6 +41,14 @@ class NoCaptchaTaskProxyless: for key in kwargs: self.task_payload['task'].update({key: kwargs[key]}) + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_value, traceback): + if exc_type: + return False + return True + # Работа с капчёй def captcha_handler(self, websiteURL, websiteKey, **kwargs): """ @@ -108,6 +116,14 @@ class aioNoCaptchaTaskProxyless: for key in kwargs: self.task_payload['task'].update({key: kwargs[key]}) + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_value, traceback): + if exc_type: + return False + return True + # Работа с капчёй async def captcha_handler(self, websiteURL, websiteKey): """ diff --git a/python3_anticaptcha/SquareNetTextTask.py b/python3_anticaptcha/SquareNetTextTask.py index 40f2247..848c83b 100644 --- a/python3_anticaptcha/SquareNetTextTask.py +++ b/python3_anticaptcha/SquareNetTextTask.py @@ -54,9 +54,16 @@ class SquareNetTextTask: # отправляем запрос на результат решения капчи, если ещё капча не решена - ожидаем 5 сек # если всё ок - идём дальше self.result_payload = {"clientKey": anticaptcha_key} - - def image_temp_saver(self, content: bytes): + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_value, traceback): + if exc_type: + return False + return True + + def __image_temp_saver(self, content: bytes): ''' Метод сохраняет файл изображения как временный и отправляет его сразу на сервер для расшифровки. :return: Возвращает ID капчи @@ -68,7 +75,7 @@ class SquareNetTextTask: captcha_id = requests.post(create_task_url, json = self.task_payload).json() return captcha_id - def image_const_saver(self, content: bytes): + def __image_const_saver(self, content: bytes): ''' Метод создаёт папку и сохраняет в неё изображение, затем передаёт его на расшифровку и удалет файл. :return: Возвращает ID капчи @@ -96,7 +103,7 @@ class SquareNetTextTask: return captcha_id - def read_captcha_image_file(self, content: bytes, content_type: str = "file"): + def __read_captcha_image_file(self, content: bytes, content_type: str = "file"): """ Функция отвечает за чтение уже сохранённого файла или файла в уодировке base64 :param content: Параметр строка-путь указывающий на изображение капчи для отправки её на сервер @@ -134,6 +141,7 @@ class SquareNetTextTask: :param image_link: Ссылка на изображение :param image_file: Необязательный параметр, служит для открытия уже скачанных файлов изображений. :param image_base64: Загрузка изображения в кодировке base64 + :return: Возвращает весь ответ сервера JSON-строкой. ''' # проверка параметров сетки @@ -148,20 +156,20 @@ class SquareNetTextTask: # проводим действия над файлом(декодируем и передаём на сервер) if image_file: - captcha_id = self.read_captcha_image_file(image_file, content_type="file") + captcha_id = self.__read_captcha_image_file(image_file, content_type="file") # проводим действия над файлом уже закодированном в base64(передаём на сервер) elif image_base64: - captcha_id = self.read_captcha_image_file(image_base64, content_type="base64") + captcha_id = self.__read_captcha_image_file(image_base64, content_type="base64") # проводим действия над ссылкой на файл(скачиваем, сохраняем и передаём на сервер) elif image_link: content = requests.get(image_link).content # согласно значения переданного параметра выбираем функцию для сохранения изображения if self.save_format == 'const': - captcha_id = self.image_const_saver(content) + captcha_id = self.__image_const_saver(content) elif self.save_format == 'temp': - captcha_id = self.image_temp_saver(content) + captcha_id = self.__image_temp_saver(content) else: raise ParamError(additional_info="""Wrong 'save_format' parameter. Valid formats: 'const' or 'temp'.\n Неправильный 'save_format' параметр. Возможные форматы: 'const' или 'temp'.""") @@ -226,8 +234,16 @@ class aioSquareNetTextTask: # отправляем запрос на результат решения капчи, если ещё капча не решена - ожидаем 5 сек # если всё ок - идём дальше self.result_payload = {"clientKey": anticaptcha_key} - - async def image_temp_saver(self, captcha_link: str): + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_value, traceback): + if exc_type: + return False + return True + + async def __image_temp_saver(self, captcha_link: str): ''' Метод сохраняет файл изображения как временный и отправляет его сразу на сервер для расшифровки. :return: Возвращает ID капчи @@ -244,7 +260,7 @@ class aioSquareNetTextTask: async with session.post(create_task_url, json=self.task_payload) as resp: return await resp.json() - async def image_const_saver(self, captcha_link: str): + async def __image_const_saver(self, captcha_link: str): ''' Метод создаёт папку и сохраняет в неё изображение, затем передаёт его на расшифровку и удалет файл. :return: Возвращает ID капчи @@ -279,7 +295,7 @@ class aioSquareNetTextTask: os.remove(os.path.join(img_path, "im-{0}.png".format(image_hash))) return captcha_id - async def read_captcha_image_file(self, content: bytes, content_type: str = 'file'): + async def __read_captcha_image_file(self, content: bytes, content_type: str = 'file'): """ Функция отвечает за чтение уже сохранённого файла или файла в уодировке base64 :param content: Параметр строка-путь указывающий на изображение капчи для отправки её на сервер @@ -330,15 +346,15 @@ class aioSquareNetTextTask: self.task_payload['task'].update({"columnsCount": columnsCount}) # если был передан линк на локальный скачаный файл if image_file: - captcha_id = await self.read_captcha_image_file(image_file, content_type="file") + captcha_id = await self.__read_captcha_image_file(image_file, content_type="file") elif image_base64: - captcha_id = await self.read_captcha_image_file(image_base64, content_type="base64") + captcha_id = await self.__read_captcha_image_file(image_base64, content_type="base64") elif image_link: # согласно значения переданного параметра выбираем функцию для сохранения изображения if self.save_format == 'const': - captcha_id = await self.image_const_saver(image_link) + captcha_id = await self.__image_const_saver(image_link) elif self.save_format == 'temp': - captcha_id = await self.image_temp_saver(image_link) + captcha_id = await self.__image_temp_saver(image_link) else: raise ParamError(additional_info="""Wrong 'save_format' parameter. Valid formats: 'const' or 'temp'.\n Неправильный 'save_format' параметр. Возможные форматы: 'const' или 'temp'.""")