Python-Spamprotection-API/spamprotection/sync.py

36 lines
1009 B
Python

import requests
from .errors import UnknownError
from .types import Blacklist
from json import JSONDecodeError
from typing import Union
class SPBClient:
def __init__(
self, *, host: str = "https://api.intellivoid.net/spamprotection/v1/lookup"
) -> None:
self._host = host
def do_request(self, user_id: str, method: str = "get"):
request = requests.get(f"{self._host}?query={user_id}")
try:
return request.json(), request
except JSONDecodeError:
return request.text(), request
def raw_output(self, user_id: Union[int, str]) -> Union[Blacklist, bool]:
try:
data, _ = self.do_request(user_id)
return data
except UnknownError:
return False
def check_blacklist(self, user_id: Union[int, str]) -> Union[Blacklist, bool]:
try:
data, _ = self.do_request(user_id)
return Blacklist(**data)
except UnknownError:
return False