zephyr-backend/backend.py
2025-02-13 20:03:12 +08:00

52 lines
1.4 KiB
Python

from matplotlib import pyplot as plt
import cosmic
import tidi
import saber
import radar
import balloon
from quart import Quart, request
from quart_cors import cors
from typing import get_args
import sys
import matplotlib.font_manager as fm
app = Quart(__name__)
app = cors(app, send_origin_wildcard=True, allow_origin="*")
plt.switch_backend('agg')
fm.fontManager.addfont("./SimHei.ttf")
@app.before_request
def auth():
# check for method
# if it is OPTIONS, do not check for auth
if request.method == "OPTIONS":
return
code = request.headers.get("Authorization")
print(code)
if code != "0101":
return "Unauthorized", 401
@app.route("/ping")
def ping():
return "pong"
app.register_blueprint(balloon.balloon_module, url_prefix="/balloon")
app.register_blueprint(radar.radar_module, url_prefix="/radar")
app.register_blueprint(saber.saber_module, url_prefix="/saber")
app.register_blueprint(tidi.tidi_module, url_prefix="/tidi")
app.register_blueprint(cosmic.cosmic_module, url_prefix="/cosmic")
# allow cors
if __name__ == '__main__':
# get args '--prod'
args = sys.argv
if 'prod' in args:
app.run("0.0.0.0", port=5000, debug=False)
pass
elif 'debug' in args:
app.run("0.0.0.0",port=18200,debug=True)
else:
raise Exception("Invalied Mode")