from webdav3.client import Client

client: Client


def connect_webdav_b2drop(username, webdav_pw):
    global client

    options = {
        'webdav_hostname': f"https://b2drop.eudat.eu/remote.php/dav/files/{username}",
        'webdav_login': username,
        'webdav_password': webdav_pw,
        'verbose': True,
        'webdav_timeout': 60 * 4,  # 10 minutes
    }
    client = Client(options)


def list_b2drop():
    return client.list(get_info=True)


def get_info(cloud_path: str):
    return client.info(cloud_path)


def pull(cloud_path, local_path):
    return client.pull(cloud_path, local_path)


def push(cloud_path, local_path):
    return client.push(cloud_path, local_path)


def upload(cloud_path, local_path):
    return client.upload(cloud_path, local_path)