borg-web/borg-client/borgclient.py

50 lines
1.3 KiB
Python

import requests
class BorgClient(object):
def __init__(self, url: str, username: str, password: str):
self.url = url
self.client = requests.Session()
self.referer = self.url
self.username = username
self.password = password
self.__login()
def __login(self):
url = f"{self.url}/accounts/login/"
post_data = {
"username": self.username,
"password": self.password,
}
return self.__post(url, post_data).text
def __post(self, url, post_data):
self.client.get(url=url)
csrf_token = self.client.cookies['csrftoken']
post_data['csrfmiddlewaretoken'] = csrf_token
headers = dict(self.client.headers)
headers['X-CSRFToken'] = csrf_token
headers['Referer'] = self.referer
post_responce = self.client.post(url=url, data=post_data, headers=headers)
return post_responce
def post_error(self, post_data):
url = f"{self.url}/post/error"
return self.__post(url, post_data).text
def post_repo(self, post_data):
url = f"{self.url}/post/repo"
return self.__post(url, post_data).text
def post_archive_and_cache(self, post_data):
url = f"{self.url}/post/archive"
return self.__post(url, post_data).text