-
Notifications
You must be signed in to change notification settings - Fork 21
Expand file tree
/
Copy pathTenDiCustomTaskRequest.py
More file actions
36 lines (32 loc) · 1.47 KB
/
Copy pathTenDiCustomTaskRequest.py
File metadata and controls
36 lines (32 loc) · 1.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from typing import Dict, Optional, Union
from pydantic import Field, validator
from .CustomTaskRequestBase import CustomTaskRequestBase
class TenDiCustomTaskRequest(CustomTaskRequestBase):
captchaClass: str = Field(default='TenDI')
websiteKey: str = Field()
metadata: Optional[Dict[str, str]] = Field(default=None)
@validator('metadata')
def validate_metadata(cls, value):
if value is not None:
if not set(value.keys()).issubset(set(["captchaUrl"])):
raise TypeError(f'Allowed keys for metadata are "captchaUrl"')
if value.get('captchaUrl') is not None and not isinstance(value.get('captchaUrl'), str):
raise TypeError(f'Expect that captchaUrl will be str.')
return value
def getTaskDict(self) -> Dict[str, Union[str, int, bool]]:
task = {}
task['type'] = self.type
task['class'] = self.captchaClass
task['websiteURL'] = self.websiteUrl
task['websiteKey'] = self.websiteKey
if self.proxy:
task['proxyType'] = self.proxy.proxyType
task['proxyAddress'] = self.proxy.proxyAddress
task['proxyPort'] = self.proxy.proxyPort
task['proxyLogin'] = self.proxy.proxyLogin
task['proxyPassword'] = self.proxy.proxyPassword
if self.userAgent is not None:
task['userAgent'] = self.userAgent
if self.metadata is not None:
task['metadata'] = self.metadata
return task