from flask import Flask from flask_bootstrap import Bootstrap5 from datetime import datetime from app.views import register_views from app.api import register_api from app.config import load_config from app.filters import register_filters from app.analysis import generate_statistics def init_app(): config = load_config() # Initialize app app = Flask(__name__) # Load configuration app.config['SECRET_KEY'] = config['DEFAULT']['SECRET_KEY'] app.config['API_KEY'] = config['DEFAULT']['API_KEY'] app.config['DATA'] = config['DATA'] app.config['TEMP'] = config['TEMP'] app.config['LOGGING'] = config['LOGGING'] # Move bootstrap settings to root level for key in config['BOOTSTRAP']: app.config[key.upper()] = config['BOOTSTRAP'][key] bootstrap = Bootstrap5(app) # Initialize global variables app.config['SCRAPING_ACTIVE'] = False app.config['SCRAPING_THREAD'] = None app.config['DATA_FILE_NAME'] = None app.config['LOG_FILE_NAME'] = "log/" + datetime.now().strftime('%Y-%m-%d-%H-%M') + '.log' # Register routes register_views(app) register_api(app) register_filters(app) return app