diff --git a/.gitignore b/.gitignore index f3c48a2..08dd60d 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ *.swp *.swo *.orig +*~ /web/settings_local.py pip-log.txt diff --git a/README.md b/README.md index e5879bc..f4cdf93 100644 --- a/README.md +++ b/README.md @@ -58,3 +58,15 @@ solver = CaptchaSolver('antigate', api_key='ANTIGATE_KEY') raw_data = open('captcha.png', 'rb').read() print(solver.solve_captcha(raw_data)) ``` + +## DeathByCaptcha Backend Example + +Service website is http://getcaptchasolution.com/ijykrofoxz + +```python +from captcha_solver import CaptchaSolver + +solver = DeathByCaptchaSolver(username="username", password='password') +raw_data = open('captcha.png', 'rb').read() +print(solver.solve_captcha(raw_data)) +``` diff --git a/captcha_solver/__init__.py b/captcha_solver/__init__.py index dd2dd0d..cf8be82 100644 --- a/captcha_solver/__init__.py +++ b/captcha_solver/__init__.py @@ -1,5 +1,5 @@ # pylint: disable=wildcard-import -from captcha_solver.solver import CaptchaSolver +from captcha_solver.solver import CaptchaSolver, DeathByCaptchaSolver from captcha_solver.error import * # noqa __version__ = '0.1.5' diff --git a/captcha_solver/solver.py b/captcha_solver/solver.py index 3149e8f..ea4fe5b 100644 --- a/captcha_solver/solver.py +++ b/captcha_solver/solver.py @@ -9,6 +9,10 @@ from urllib.error import URLError from typing_extensions import TypedDict +try: + from deathbycaptcha import deathbycaptcha +except ImportError: + deathbycaptcha = None from .backend.antigate import AntigateBackend from .backend.base import ServiceBackend @@ -164,3 +168,12 @@ def solve_captcha( return self.check_solution_with_retry( recognition_time, recognition_delay, captcha_id ) + +class DeathByCaptchaSolver(deathbycaptcha.HttpClient): + """ + Official deathbycaptcha client interface modified to work the same as + the CaptchaSolver class + """ + + def solve_captcha(self, data, timeout, **kwargs): + return self.decode(data, timeout, **kwargs)