52 lines
1.8 KiB
Python
52 lines
1.8 KiB
Python
import re
|
|
import requests
|
|
|
|
# from spellcheck.client import TaskbaseClient
|
|
# client = TaskbaseClient('info@iterativ.ch', 'myverysafepassword1234', 'https://dev-iterativ.taskbase.com')
|
|
# client.spellcheck('aOciP9H7tNu7pLsR4ohllk', 'Dies ist ein Sats mit filen Felern')
|
|
|
|
class TaskbaseClient:
|
|
# def __init__(self, resource_url):
|
|
# # resource url should be in the form https://username:password@baseurl
|
|
# pattern = re.compile(r'(\w+)://(\w+):(\w+)@([a-zA-Z0-9.]+)')
|
|
# scheme, username, password, url = pattern.match(resource_url).groups()
|
|
# self.username = username
|
|
# self.password = password
|
|
# self.token = None
|
|
# self.base_url = '{}://{}'.format(scheme, url)
|
|
def __init__(self, username, password, base_url):
|
|
self.username = username
|
|
self.password = password
|
|
self.base_url = base_url
|
|
|
|
self.token = None
|
|
|
|
def login(self):
|
|
payload = {
|
|
'username': self.username,
|
|
'password': self.password
|
|
}
|
|
response = requests.post('{}/api/login'.format(self.base_url), json=payload)
|
|
data = response.json()
|
|
self.token = data['accessToken']
|
|
|
|
def spellcheck(self, task, text):
|
|
if self.token is None:
|
|
self.login()
|
|
|
|
payload = {
|
|
"taskId": task,
|
|
"input": {
|
|
"text": text,
|
|
"type": "SPELL_CHECK"
|
|
}
|
|
}
|
|
|
|
headers = {'Authorization': 'Bearer {}'.format(self.token), 'Content-Type': 'application/json'}
|
|
|
|
response = requests.post('{}/api/grade'.format(self.base_url), json=payload, headers=headers)
|
|
if response.status_code == 200:
|
|
return response.content
|
|
else:
|
|
raise Exception('Something went wrong')
|