mirror of
https://github.com/MikuLeaks/KianaBH3.git
synced 2025-12-14 05:44:34 +01:00
Initial commit
This commit is contained in:
69
sdk_server/__init__.py
Normal file
69
sdk_server/__init__.py
Normal file
@@ -0,0 +1,69 @@
|
||||
from game_server.config import *
|
||||
from sdk_server.controllers.account_controller import account_blueprint
|
||||
from sdk_server.controllers.config_controller import config_blueprint
|
||||
from sdk_server.controllers.dispatch_controller import dispatch_blueprint
|
||||
|
||||
class VerboseLevel(Enum):
|
||||
SILENT = 0
|
||||
NORMAL = 1
|
||||
DEBUG = 2
|
||||
|
||||
class RequestLoggingMiddleware:
|
||||
suppressed_routes = ["/report", "/sdk/dataUpload"]
|
||||
|
||||
def __init__(self, app, verbose_level):
|
||||
self.app = app
|
||||
self.verbose_level = verbose_level
|
||||
|
||||
def __call__(self, environ, start_response):
|
||||
path = environ.get('PATH_INFO', '')
|
||||
method = environ.get('REQUEST_METHOD', '').upper()
|
||||
|
||||
def custom_start_response(status, headers, *args):
|
||||
status_code = int(status.split()[0])
|
||||
|
||||
if self.verbose_level.value > VerboseLevel.NORMAL.value:
|
||||
Info(f"{status_code} {method} {path}")
|
||||
elif self.verbose_level.value > VerboseLevel.SILENT.value and path not in self.suppressed_routes:
|
||||
Info(f"{status_code} {method} {path}")
|
||||
|
||||
return start_response(status, headers, *args)
|
||||
|
||||
return self.app(environ, custom_start_response)
|
||||
|
||||
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
|
||||
app.wsgi_app = RequestLoggingMiddleware(app.wsgi_app, verbose_level=VerboseLevel.NORMAL)
|
||||
|
||||
|
||||
resources_path = Path(__file__).resolve().parent.parent / "resources/statics"
|
||||
if not resources_path.exists():
|
||||
resources_path.mkdir(parents=True)
|
||||
|
||||
@app.route('/statics/<path:filename>')
|
||||
def serve_statics(filename):
|
||||
return send_from_directory(resources_path, filename)
|
||||
|
||||
app.register_blueprint(account_blueprint)
|
||||
app.register_blueprint(config_blueprint)
|
||||
app.register_blueprint(dispatch_blueprint)
|
||||
|
||||
def HandleSdkServer(ServerIp, GameServerPort, SdkServerPort):
|
||||
app.config['SERVER_IP'] = ServerIp
|
||||
app.config['GAME_SERVER_PORT'] = GameServerPort
|
||||
|
||||
log = logging.getLogger('werkzeug')
|
||||
log.setLevel(logging.ERROR)
|
||||
|
||||
Info("HTTP server started on port 80")
|
||||
|
||||
app.run(host=ServerIp, port=SdkServerPort)
|
||||
|
||||
def HandleSslSdkServer():
|
||||
log = logging.getLogger('werkzeug')
|
||||
log.setLevel(logging.ERROR)
|
||||
Info("HTTPS server started on port 443")
|
||||
app.run(host='127.0.0.1', port=443,ssl_context='adhoc')
|
||||
Reference in New Issue
Block a user