Skip to content

Commit dbb7606

Browse files
committed
✨ publish: new plugin
1 parent 51e846b commit dbb7606

5 files changed

Lines changed: 39 additions & 20 deletions

File tree

dymoapi/branches/private.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@
88
def is_valid_data(token, data):
99
if not any([key in list(data.keys()) for key in ["url", "email", "phone", "domain", "creditCard", "ip", "wallet", "userAgent", "iban"]]): raise BadRequestError("You must provide at least one parameter.")
1010
try:
11-
response = requests.post(f"{get_base_url()}/v1/private/secure/verify", json=data, headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.65", "Authorization": token})
11+
response = requests.post(f"{get_base_url()}/v1/private/secure/verify", json=data, headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.66", "Authorization": token})
1212
response.raise_for_status()
1313
return response.json()
1414
except requests.RequestException as e: raise APIError(str(e))
1515

1616
def is_valid_data_raw(token, data):
1717
if not any([key in list(data.keys()) for key in ["url", "email", "phone", "domain", "creditCard", "ip", "wallet", "userAgent", "iban"]]): raise BadRequestError("You must provide at least one parameter.")
1818
try:
19-
response = requests.post(f"{get_base_url()}/v1/private/secure/verify", json=data, headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.65", "Authorization": token})
19+
response = requests.post(f"{get_base_url()}/v1/private/secure/verify", json=data, headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.66", "Authorization": token})
2020
response.raise_for_status()
2121
return response.json()
2222
except requests.RequestException as e: raise APIError(str(e))
@@ -54,7 +54,7 @@ def is_valid_email(token: Optional[str], email: str, rules: Optional[Dict[str, L
5454
resp = requests.post(
5555
f"{get_base_url()}/v1/private/secure/verify",
5656
json={"email": email, "plugins": plugins},
57-
headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.65", "Authorization": token}
57+
headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.66", "Authorization": token}
5858
)
5959
resp.raise_for_status()
6060
data = resp.json().get("email", {})
@@ -121,7 +121,7 @@ def is_valid_ip(token: Optional[str], ip: str, rules: Optional[Dict[str, List[st
121121
resp = requests.post(
122122
f"{get_base_url()}/v1/private/secure/verify",
123123
json={"ip": ip, "plugins": plugins},
124-
headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.65", "Authorization": token}
124+
headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.66", "Authorization": token}
125125
)
126126
resp.raise_for_status()
127127
data = resp.json().get("ip", {})
@@ -185,7 +185,7 @@ def is_valid_phone(token: Optional[str], phone: str, rules: Optional[Dict[str, L
185185
resp = requests.post(
186186
f"{get_base_url()}/v1/private/secure/verify",
187187
json={"phone": phone, "plugins": plugins},
188-
headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.65", "Authorization": token}
188+
headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.66", "Authorization": token}
189189
)
190190
resp.raise_for_status()
191191
data = resp.json().get("phone", {})
@@ -224,7 +224,7 @@ def send_email(token, data):
224224
if not data.get("subject"): raise BadRequestError("You must provide a subject for the email to be sent.")
225225
if not data.get("html"): raise BadRequestError("You must provide HTML.")
226226
try:
227-
response = requests.post(f"{get_base_url()}/v1/private/sender/sendEmail", json=data, headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.65", "Authorization": token})
227+
response = requests.post(f"{get_base_url()}/v1/private/sender/sendEmail", json=data, headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.66", "Authorization": token})
228228
response.raise_for_status()
229229
return response.json()
230230
except requests.RequestException as e: raise APIError(str(e))
@@ -236,7 +236,7 @@ def get_random(token, data):
236236
if data.get("min") < -1000000000 or data.get("min") > 1000000000: raise BadRequestError("'min' must be an integer in the interval [-1000000000, 1000000000].")
237237
if data.get("max") < -1000000000 or data.get("max") > 1000000000: raise BadRequestError("'max' must be an integer in the interval [-1000000000, 1000000000].")
238238
try:
239-
response = requests.post(f"{get_base_url()}/v1/private/srng", json=data, headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.65", "Authorization": token})
239+
response = requests.post(f"{get_base_url()}/v1/private/srng", json=data, headers={"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.66", "Authorization": token})
240240
response.raise_for_status()
241241
return response.json()
242242
except requests.RequestException as e: raise APIError(str(e))
@@ -254,7 +254,7 @@ def extract_with_textly(token: str, data: dict) -> dict:
254254
"Content-Type": "application/json",
255255
"User-Agent": "DymoAPISDK/1.0.0",
256256
"X-Dymo-SDK-Env": "Python",
257-
"X-Dymo-SDK-Version": "0.0.65",
257+
"X-Dymo-SDK-Version": "0.0.66",
258258
"Authorization": token
259259
}
260260
)

dymoapi/branches/public.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from ..utils.decorators import deprecated
55
from ..exceptions import APIError, BadRequestError
66

7-
headers = {"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.65"}
7+
headers = {"User-Agent": "DymoAPISDK/1.0.0", "X-Dymo-SDK-Env": "Python", "X-Dymo-SDK-Version" : "0.0.66"}
88

99
def get_prayer_times(data):
1010
"""

dymoapi/resilience/fallback.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,10 @@ def _generate_email_plugins() -> Dict[str, Any]:
429429
"nsfw": False,
430430
"reputation": "unknown",
431431
"riskScore": 0,
432+
"socialFootprint": {
433+
"totalChecked": 0,
434+
"platforms": []
435+
},
432436
"torNetwork": False,
433437
"typosquatting": 0,
434438
"urlShortener": False,

dymoapi/response_models.py

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,31 @@ class MxRecord(BaseModel):
1010
priority: int
1111
exchange: str
1212

13+
class SocialFootprintPlatform(BaseModel):
14+
"""Platform detected by Social Footprint plugin"""
15+
slug: str
16+
platform: str
17+
category: str
18+
confidence: int
19+
metadata: Optional[Dict[str, Any]] = None
20+
21+
class SocialFootprintPlugin(BaseModel):
22+
"""Social Footprint plugin response"""
23+
totalChecked: int
24+
platforms: List[SocialFootprintPlatform]
25+
1326
class Plugins(BaseModel):
14-
blocklist: Optional[bool]
15-
gravatarUrl: Optional[str]
16-
compromiseDetector: Optional[bool]
17-
mxRecords: Optional[List[MxRecord]]
18-
nsfw: Optional[bool]
19-
reputation: Optional[ReputationPlugin]
20-
riskScore: Optional[float]
21-
torNetwork: Optional[bool]
22-
typosquatting: Optional[TyposquattingPlugin]
23-
urlShortener: Optional[bool]
27+
blocklist: Optional[bool] = None
28+
gravatarUrl: Optional[str] = None
29+
compromiseDetector: Optional[bool] = None
30+
mxRecords: Optional[List[MxRecord]] = None
31+
nsfw: Optional[bool] = None
32+
reputation: Optional[ReputationPlugin] = None
33+
riskScore: Optional[float] = None
34+
socialFootprint: Optional[SocialFootprintPlugin] = None
35+
torNetwork: Optional[bool] = None
36+
typosquatting: Optional[TyposquattingPlugin] = None
37+
urlShortener: Optional[bool] = None
2438

2539
class VerifyPlugins(Enum):
2640
BLOCKLIST = "blocklist"
@@ -30,6 +44,7 @@ class VerifyPlugins(Enum):
3044
NSFW = "nsfw"
3145
REPUTATION = "reputation"
3246
RISK_SCORE = "riskScore"
47+
SOCIAL_FOOTPRINT = "socialFootprint"
3348
TOR_NETWORK = "torNetwork"
3449
TYPOSQUATTING = "typosquatting"
3550
URL_SHORTENER = "urlShortener"

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
setup(
44
name="dymoapi",
5-
version="0.0.65",
5+
version="0.0.66",
66
packages=find_packages(),
77
description="Dymo Python API library.",
88
long_description=open("README.md").read(),

0 commit comments

Comments
 (0)