integrations.web.events.handler
integrations/web/events/handler.py
1""" 2integrations/web/events/handler.py 3""" 4 5import os 6from typing import TYPE_CHECKING, Any 7 8from flask import Flask 9from flask_httpauth import HTTPBasicAuth # type: ignore 10 11import libs.global_value as g 12from integrations.web.events import create_bp 13 14if TYPE_CHECKING: 15 from integrations.web.adapter import ServiceAdapter 16 17 18def main(adapter: "ServiceAdapter") -> None: 19 """メイン処理""" 20 app = Flask( 21 __name__, 22 static_folder=os.path.join(g.cfg.script_dir, "files/html/static"), 23 template_folder=os.path.join(g.cfg.script_dir, "files/html/template"), 24 ) 25 26 app.config["padding"] = "0.25em 1.5em" 27 app.config["players"] = g.cfg.member.lists 28 app.register_blueprint(create_bp.index_bp(adapter)) 29 app.register_blueprint(create_bp.summary_bp(adapter)) 30 app.register_blueprint(create_bp.graph_bp(adapter)) 31 app.register_blueprint(create_bp.ranking_bp(adapter)) 32 app.register_blueprint(create_bp.detail_bp(adapter)) 33 app.register_blueprint(create_bp.report_bp(adapter)) 34 app.register_blueprint(create_bp.member_bp(adapter)) 35 app.register_blueprint(create_bp.score_bp(adapter)) 36 app.register_blueprint(create_bp.user_assets_bp(adapter)) 37 38 auth = HTTPBasicAuth() 39 40 @auth.verify_password # type: ignore[untyped-decorator] 41 def verify_password(username: str, password: str) -> bool: 42 if username == adapter.conf.username and password == adapter.conf.password: 43 return True 44 return False 45 46 @app.before_request 47 def require_auth() -> Any: 48 if adapter.conf.require_auth: 49 return auth.login_required(lambda: None)() 50 return None 51 52 if adapter.conf.use_ssl: 53 if not os.path.exists(adapter.conf.certificate): 54 raise FileNotFoundError("certificate file not found") 55 if not os.path.exists(adapter.conf.private_key): 56 raise FileNotFoundError("private key file not found") 57 app.run( 58 host=adapter.conf.host, 59 port=adapter.conf.port, 60 ssl_context=(adapter.conf.certificate, adapter.conf.private_key), 61 ) 62 else: 63 app.run(host=adapter.conf.host, port=adapter.conf.port)
19def main(adapter: "ServiceAdapter") -> None: 20 """メイン処理""" 21 app = Flask( 22 __name__, 23 static_folder=os.path.join(g.cfg.script_dir, "files/html/static"), 24 template_folder=os.path.join(g.cfg.script_dir, "files/html/template"), 25 ) 26 27 app.config["padding"] = "0.25em 1.5em" 28 app.config["players"] = g.cfg.member.lists 29 app.register_blueprint(create_bp.index_bp(adapter)) 30 app.register_blueprint(create_bp.summary_bp(adapter)) 31 app.register_blueprint(create_bp.graph_bp(adapter)) 32 app.register_blueprint(create_bp.ranking_bp(adapter)) 33 app.register_blueprint(create_bp.detail_bp(adapter)) 34 app.register_blueprint(create_bp.report_bp(adapter)) 35 app.register_blueprint(create_bp.member_bp(adapter)) 36 app.register_blueprint(create_bp.score_bp(adapter)) 37 app.register_blueprint(create_bp.user_assets_bp(adapter)) 38 39 auth = HTTPBasicAuth() 40 41 @auth.verify_password # type: ignore[untyped-decorator] 42 def verify_password(username: str, password: str) -> bool: 43 if username == adapter.conf.username and password == adapter.conf.password: 44 return True 45 return False 46 47 @app.before_request 48 def require_auth() -> Any: 49 if adapter.conf.require_auth: 50 return auth.login_required(lambda: None)() 51 return None 52 53 if adapter.conf.use_ssl: 54 if not os.path.exists(adapter.conf.certificate): 55 raise FileNotFoundError("certificate file not found") 56 if not os.path.exists(adapter.conf.private_key): 57 raise FileNotFoundError("private key file not found") 58 app.run( 59 host=adapter.conf.host, 60 port=adapter.conf.port, 61 ssl_context=(adapter.conf.certificate, adapter.conf.private_key), 62 ) 63 else: 64 app.run(host=adapter.conf.host, port=adapter.conf.port)
メイン処理