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')