parent
aebdf3b66e
commit
aa7fe2aa9d
|
@ -14,9 +14,8 @@ import websockets
|
||||||
from flask import Flask, flash, request, redirect, url_for, render_template, Response, g
|
from flask import Flask, flash, request, redirect, url_for, render_template, Response, g
|
||||||
from werkzeug.utils import secure_filename
|
from werkzeug.utils import secure_filename
|
||||||
|
|
||||||
UPLOAD_FOLDER = 'uploads'
|
UPLOAD_FOLDER = os.path.relpath('uploads')
|
||||||
LOGS_FOLDER = 'logs'
|
LOGS_FOLDER = os.path.relpath('logs')
|
||||||
|
|
||||||
multidata_folder = os.path.join(UPLOAD_FOLDER, "multidata")
|
multidata_folder = os.path.join(UPLOAD_FOLDER, "multidata")
|
||||||
os.makedirs(multidata_folder, exist_ok=True)
|
os.makedirs(multidata_folder, exist_ok=True)
|
||||||
os.makedirs(LOGS_FOLDER, exist_ok=True)
|
os.makedirs(LOGS_FOLDER, exist_ok=True)
|
||||||
|
@ -90,11 +89,13 @@ def _read_log(path: str):
|
||||||
with open(path) as log:
|
with open(path) as log:
|
||||||
yield from log
|
yield from log
|
||||||
else:
|
else:
|
||||||
yield "Logfile does not exist. Likely a crash during spinup of multiworld instance."
|
yield f"Logfile {path} does not exist. " \
|
||||||
|
f"Likely a crash during spinup of multiworld instance or it is still spinning up."
|
||||||
|
|
||||||
|
|
||||||
@app.route('/log/<filename>')
|
@app.route('/log/<filename>')
|
||||||
def display_log(filename: str):
|
def display_log(filename: str):
|
||||||
|
filename = secure_filename(filename)
|
||||||
# noinspection PyTypeChecker
|
# noinspection PyTypeChecker
|
||||||
return Response(_read_log(os.path.join("logs", filename + ".txt")), mimetype="text/plain;charset=UTF-8")
|
return Response(_read_log(os.path.join("logs", filename + ".txt")), mimetype="text/plain;charset=UTF-8")
|
||||||
|
|
||||||
|
@ -120,7 +121,6 @@ def run_server_process(multidata: str):
|
||||||
logging.basicConfig(format='[%(asctime)s] %(message)s',
|
logging.basicConfig(format='[%(asctime)s] %(message)s',
|
||||||
level=logging.INFO,
|
level=logging.INFO,
|
||||||
filename=os.path.join(LOGS_FOLDER, multidata + ".txt"))
|
filename=os.path.join(LOGS_FOLDER, multidata + ".txt"))
|
||||||
|
|
||||||
ctx = Context("", 0, "", 1, 1000,
|
ctx = Context("", 0, "", 1, 1000,
|
||||||
True, "enabled", "goal")
|
True, "enabled", "goal")
|
||||||
ctx.load(os.path.join(multidata_folder, multidata), True)
|
ctx.load(os.path.join(multidata_folder, multidata), True)
|
||||||
|
@ -131,9 +131,12 @@ def run_server_process(multidata: str):
|
||||||
ping_interval=None)
|
ping_interval=None)
|
||||||
|
|
||||||
await ctx.server
|
await ctx.server
|
||||||
for socket in ctx.server.ws_server.sockets:
|
for wssocket in ctx.server.ws_server.sockets:
|
||||||
socketname = socket.getsockname()
|
socketname = wssocket.getsockname()
|
||||||
logging.info(f'Hosting game at {socketname[0]}:{socketname[1]}')
|
if wssocket.family == socket.AF_INET6:
|
||||||
|
logging.info(f'Hosting game at [{get_public_ipv6()}]:{socketname[1]}')
|
||||||
|
elif wssocket.family == socket.AF_INET:
|
||||||
|
logging.info(f'Hosting game at {get_public_ipv4()}:{socketname[1]}')
|
||||||
while ctx.running:
|
while ctx.running:
|
||||||
await asyncio.sleep(1)
|
await asyncio.sleep(1)
|
||||||
logging.info("Shutting down")
|
logging.info("Shutting down")
|
||||||
|
@ -142,11 +145,14 @@ def run_server_process(multidata: str):
|
||||||
if ".." not in sys.path:
|
if ".." not in sys.path:
|
||||||
sys.path.append("..")
|
sys.path.append("..")
|
||||||
from MultiServer import Context, server
|
from MultiServer import Context, server
|
||||||
|
from Utils import get_public_ipv4, get_public_ipv6
|
||||||
|
import socket
|
||||||
asyncio.run(main())
|
asyncio.run(main())
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
multiprocessing.freeze_support()
|
multiprocessing.freeze_support()
|
||||||
|
multiprocessing.set_start_method('spawn')
|
||||||
db.bind(**app.config["PONY"])
|
db.bind(**app.config["PONY"])
|
||||||
db.generate_mapping(create_tables=True)
|
db.generate_mapping(create_tables=True)
|
||||||
app.run(debug=True)
|
app.run(debug=True)
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
from waitress import serve
|
from waitress import serve
|
||||||
|
import multiprocessing
|
||||||
|
|
||||||
from __init__ import app
|
from __init__ import app
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
multiprocessing.freeze_support()
|
||||||
|
multiprocessing.set_start_method('spawn')
|
||||||
serve(app, port=80, threads=1)
|
serve(app, port=80, threads=1)
|
||||||
|
|
Loading…
Reference in New Issue