ovdashboard/api/ovdashboard_api/__init__.py

33 lines
755 B
Python

import functools
from typing import Any
import caldav
from webdav3 import client as WebDAVclient
from .config import SETTINGS
_WEBDAV_CLIENT = WebDAVclient.Client({
"webdav_hostname": SETTINGS.webdav_url,
"webdav_login": SETTINGS.dav_username,
"webdav_password": SETTINGS.dav_password,
})
@functools.lru_cache
def webdav_resource(remote_path: Any) -> WebDAVclient.Resource:
return _WEBDAV_CLIENT.resource(remote_path)
def webdav_list(remote_path: str) -> list:
return _WEBDAV_CLIENT.list(remote_path)
_CALDAV_CLIENT = caldav.DAVClient(
url=SETTINGS.caldav_url,
username=SETTINGS.dav_username,
password=SETTINGS.dav_password,
)
def caldav_principal() -> caldav.Principal:
return _CALDAV_CLIENT.principal()