async def __read_captcha_image_file(self, content: bytes, content_type: str = "file"): """ Функция отвечает за чтение уже сохранённого файла или файла в уодировке base64 :param content: Параметр строка-путь указывающий на изображение капчи для отправки её на сервер :param content_type: Тип переданной переменной. Возможны варианты: `file` и `base64` :return: Возвращает ID капчи """ try: if content_type == "file": with open(content, "rb") as captcha_image: # Добавляем в пайлоад картинку и отправляем self.task_payload["task"].update({ "body": base64.b64encode(captcha_image.read()).decode("utf-8") }) elif content_type == "base64": self.task_payload["task"].update({"body": content}) else: raise ValueError( f"\nWrong `content_type` parameter. Valid params: `file` or `base64`." f"\n\tYour param - `{content_type}`") # Отправляем на антикапча изображение капчи и другие парметры, # в результате получаем JSON ответ содержащий номер решаемой капчи async with aiohttp.ClientSession() as session: async with session.post(create_task_url, json=self.task_payload) as resp: captcha_id = await resp.json() except (IOError, FileNotFoundError) as err: raise ReadError(err) return captcha_id
async def __read_captcha_image_file(self, content: bytes, content_type: str = 'file'): """ Функция отвечает за чтение уже сохранённого файла или файла в уодировке base64 :param content: Параметр строка-путь указывающий на изображение капчи для отправки её на сервер :param content_type: Тип переданной переменной. Возможны варианты: `file` и `base64` :return: Возвращает ID капчи """ try: if content_type == "file": with open(content, 'rb') as captcha_image: # Добавляем в пайлоад картинку и отправляем self.task_payload['task'].update({"body": base64.b64encode(captcha_image.read()).decode('utf-8')}) elif content_type == "base64": self.task_payload["task"].update({"body": content}) else: raise ValueError('\nПередан неверный формат файла.' f'\n\tВозможные варинты: `file` и `base64`. Вы передали - `{content_type}`' f'\nWrong `content_type` parameter. Valid params: `file` or `base64`.' f'\n\tYour param - `{content_type}`') # Отправляем на антикапча изображение капчи и другие парметры, # в результате получаем JSON ответ содержащий номер решаемой капчи captcha_id = requests.post(create_task_url, json = self.task_payload).json() except (IOError, FileNotFoundError) as err: raise ReadError(err) return captcha_id