# Copyright (C) 2020-2024 Soleta Networks <info@soleta.eu>
#
# This program is free software: you can redistribute it and/or modify it under
# the terms of the GNU Affero General Public License as published by the
# Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.

from flask_wtf.csrf import CSRFProtect
from flask_bootstrap import Bootstrap
from flask_babel import Babel
from flask import Flask
from flask.logging import logging
from os import urandom

ogcp_cfg_path = 'cfg/ogcp.json'

app = Flask(__name__)
app.config.from_json(ogcp_cfg_path)

if 'SESSION_COOKIE_SAMESITE' not in app.config or not app.config['SESSION_COOKIE_SAMESITE']:
    app.config['SESSION_COOKIE_SAMESITE'] = 'Lax'

app.secret_key = urandom(16)

class NoScopeStatus(logging.Filter):
    def filter(self, record):
        return 'GET /scopes/status' not in record.getMessage()

logging.getLogger("werkzeug").addFilter(NoScopeStatus())

babel = Babel(app)
csrf = CSRFProtect(app)
bootstrap = Bootstrap(app)


@babel.localeselector
def localeselector():
    return app.config.get('LANG', 'en')

import ogcp.views
import ogcp.filters
