from django.utils.translation import get_language

from .momentjs import get_locale_url


def site_address(request):
    if request.is_secure():
        site_protocol = "https"
        address_template = "https://%s"
    else:
        site_protocol = "http"
        address_template = "http://%s"

    host = request.get_host()

    return {
        "SITE_PROTOCOL": site_protocol,
        "SITE_HOST": host,
        "SITE_ADDRESS": address_template % host,
        "REQUEST_PATH": request.path,
    }


def current_link(request):
    if not request.resolver_match or request.frontend_context.get("CURRENT_LINK"):
        return {}

    url_name = request.resolver_match.url_name
    if request.resolver_match.namespaces:
        namespaces = ":".join(request.resolver_match.namespaces)
        link_name = "%s:%s" % (namespaces, url_name)
    else:
        link_name = url_name

    request.frontend_context.update({"CURRENT_LINK": link_name})

    return {}


def momentjs_locale(request):
    return {"MOMENTJS_LOCALE_URL": get_locale_url(get_language())}


def frontend_context(request):
    if request.include_frontend_context:
        return {"frontend_context": request.frontend_context}
    return {}