# app.py from logging_handlers.DatabaseLogHandler import DatabaseLogHandler from urllib.parse import urlparse from api import limiter from flask import Flask, request from flask_cors import CORS import api import env_provider import db import logging logger = logging.getLogger(__name__) db_handler = DatabaseLogHandler(application="backend") formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') db_handler.setFormatter(formatter) logger.addHandler(db_handler) logger.setLevel(logging.INFO) def is_allowed_origin(origin): parsed_origin = urlparse(origin) if parsed_origin.hostname in ['localhost', '127.0.0.1']: return True allowed_origins = [ "https://login.hangman-lab.top", "https://git.hangman-lab.top", ] return origin in allowed_origins try: db.create_all() except Exception as e: print("db not ready") app = Flask(__name__) app.secret_key = env_provider.SESSION_SECRET_KEY CORS(app, resources={r"/api/*": {"origins": is_allowed_origin}}) limiter.init_app(app) api.register_blueprints(app) @app.before_request def log_request(): if request.path.startswith("/api/log"): return logger.info(f"Request received: {request.method} {request.path} from {request.remote_addr}") if __name__ == '__main__': #logger.info("Starting app") app.run(host='0.0.0.0', port=5000)