import base64
import random
from config import USERNAME, PASSWORD
from hashlib import sha256


def get_credentials(database):
    settings = database.settings
    creds = settings.get_credentials()
    if creds == (USERNAME, PASSWORD):
        return creds
    elif creds is not None and (USERNAME is None or PASSWORD is None):
        return creds
    elif creds is not None and USERNAME is not None and PASSWORD is not None:
        settings.set_credentials(USERNAME, PASSWORD)
        return (USERNAME, PASSWORD)
    elif creds is None and (USERNAME is None or PASSWORD is None):
        username = base64.b64encode(sha256(str(random.getrandbits(255))).digest())[:20]
        password = base64.b64encode(sha256(str(random.getrandbits(255))).digest())[:20]
        settings.set_credentials(username, password)
        return (username, password)
    elif creds is None and (USERNAME is not None and PASSWORD is not None):
        settings.set_credentials(USERNAME, PASSWORD)
        return (USERNAME, PASSWORD)