-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
eeb4204
commit a8b854f
Showing
7 changed files
with
180 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,6 +5,7 @@ | |
|
||
from python3_capsolver import ( | ||
core, | ||
akamai, | ||
gee_test, | ||
hcaptcha, | ||
recaptcha, | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
Akamai | ||
====== | ||
|
||
To import this module: | ||
|
||
.. code-block:: python | ||
from python3_capsolver.akamai import Akamai | ||
.. autoclass:: python3_capsolver.akamai.Akamai | ||
:members: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,143 @@ | ||
from typing import Union | ||
|
||
from python3_capsolver.core.base import BaseCaptcha | ||
from python3_capsolver.core.enum import AntiAkamaiTaskEnm, EndpointPostfixEnm | ||
from python3_capsolver.core.serializer import PostRequestSer, CaptchaResponseSer, AntiAkamaiBMPTaskSer | ||
|
||
|
||
class Akamai(BaseCaptcha): | ||
""" | ||
The class is used to work with Capsolver AntiAkamai methods. | ||
Args: | ||
api_key: Capsolver API key | ||
captcha_type: Captcha type name, like ``AntiAkamaiBMPTask`` and etc. | ||
packageName: Package name of AkamaiBMP mobile APP | ||
version: AKAMAI BMP Version number, default is: 3.2.6 , max support 3.3.1 | ||
Examples: | ||
>>> Akamai(api_key="CAI-BA9XXXXXXXXXXXXX2702E010", | ||
... captcha_type="AntiAkamaiBMPTask", | ||
... packageName="de.zalando.iphone", | ||
... country="US", | ||
... deviceId="90F9EAF5-D6E5-4E30-BC8B-B7780AD02600", | ||
... deviceName="iPhone14,2/16.0.2", | ||
... count=10, | ||
... ).captcha_handler() | ||
CaptchaResponseSer(errorId=0, | ||
errorCode=None, | ||
errorDescription=None, | ||
taskId='73bdcd28-6c77-4414-8....', | ||
status=<ResponseStatusEnm.Ready: 'ready'>, | ||
solution={'deviceId': '90F9EAF...'} | ||
) | ||
>>> Akamai(api_key="CAI-BA9XXXXXXXXXXXXX2702E010", | ||
... captcha_type=AntiAkamaiTaskEnm.AntiAkamaiBMPTask, | ||
... ).captcha_handler() | ||
CaptchaResponseSer(errorId=0, | ||
errorCode=None, | ||
errorDescription=None, | ||
taskId='73bdcd28-6c77-4414-8....', | ||
status=<ResponseStatusEnm.Ready: 'ready'>, | ||
solution={'deviceId': '6DKFOD0...'} | ||
) | ||
>>> Akamai(api_key="CAI-BA9XXXXXXXXXXXXX2702E010", | ||
... captcha_type=AntiAkamaiTaskEnm.AntiAkamaiBMPTask, | ||
... **{ | ||
... "version": "3.2.6", | ||
... "deviceId": "90F9EAF5-D6E5-4E30-BC8B-B7780AD02600", | ||
... "deviceName": "iPhone14,2/16.0.2", | ||
... "count": 10, | ||
... }, | ||
... ).captcha_handler() | ||
CaptchaResponseSer(errorId=0, | ||
errorCode=None, | ||
errorDescription=None, | ||
taskId="87f149f4-1c....", | ||
status=<ResponseStatusEnm.Ready: 'ready'>, | ||
solution={'deviceId': '90F9EAF...'} | ||
) | ||
>>> await Akamai(api_key="CAI-BA9650D2B9C2786B21120D512702E010", | ||
... captcha_type="AntiAkamaiBMPTask", | ||
... packageName="de.zalando.iphone", | ||
... country="US", | ||
... deviceId="90F9EAF5-D6E5-4E30-BC8B-B7780AD02600", | ||
... deviceName="iPhone14,2/16.0.2", | ||
... count=10, | ||
... ).aio_captcha_handler() | ||
CaptchaResponseSer(errorId=0, | ||
errorCode=None, | ||
errorDescription=None, | ||
taskId='73bdcd28-6c77-4414-8....', | ||
status=<ResponseStatusEnm.Ready: 'ready'>, | ||
solution={'deviceId': '90F9EAF...'} | ||
) | ||
Returns: | ||
CaptchaResponseSer model with full server response | ||
Notes: | ||
https://docs.capsolver.com/guide/antibots/akamaibmp.html | ||
https://docs.capsolver.com/guide/antibots/akamaiweb.html | ||
""" | ||
|
||
serializer = PostRequestSer | ||
|
||
def __init__( | ||
self, | ||
captcha_type: Union[AntiAkamaiTaskEnm, str], | ||
packageName: str = "de.zalando.iphone", | ||
version: str = "3.2.6", | ||
country: str = "US", | ||
*args, | ||
**kwargs, | ||
): | ||
super().__init__(*args, **kwargs) | ||
|
||
if captcha_type == AntiAkamaiTaskEnm.AntiAkamaiBMPTask: | ||
self.task_params = AntiAkamaiBMPTaskSer(**locals()).dict() | ||
else: | ||
raise ValueError( | ||
f"""Invalid `captcha_type` parameter set for `{self.__class__.__name__}`, | ||
available - {AntiAkamaiTaskEnm.list_values()}""" | ||
) | ||
|
||
for key in kwargs: | ||
self.task_params.update({key: kwargs[key]}) | ||
|
||
def captcha_handler(self) -> CaptchaResponseSer: | ||
""" | ||
Sync solving method | ||
Returns: | ||
CaptchaResponseSer model with full service response | ||
Notes: | ||
Check class docstring for more info | ||
""" | ||
self._prepare_create_task_payload(serializer=self.serializer, create_params=self.task_params) | ||
return CaptchaResponseSer( | ||
**self._create_task( | ||
url_postfix=EndpointPostfixEnm.AKAMAI_BMP_INVOKE.value, | ||
) | ||
) | ||
|
||
async def aio_captcha_handler(self) -> CaptchaResponseSer: | ||
""" | ||
Async method for captcha solving | ||
Returns: | ||
CaptchaResponseSer model with full service response | ||
Notes: | ||
Check class docstring for more info | ||
""" | ||
self._prepare_create_task_payload(serializer=self.serializer, create_params=self.task_params) | ||
return CaptchaResponseSer( | ||
**await self._aio_create_task( | ||
url_postfix=EndpointPostfixEnm.AKAMAI_BMP_INVOKE.value, | ||
) | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters