zephyr-backend/tidi/__init__.py
2025-01-24 17:21:49 +08:00

61 lines
1.5 KiB
Python

import glob
from io import BytesIO
from quart import Blueprint, request, send_file
from matplotlib import pyplot as plt
from tidi.plot import TidiPlotv2
from tidi.staged.plot import tidi_render
tidi_module = Blueprint("Tidi", __name__)
@tidi_module.route('/metadata')
def get_all_years():
res = glob.glob("./tidi/data/**/**.txt", recursive=True)
# search for the folder name that is year
return {
"path": res
}
@tidi_module.route('/render/wave')
async def render_wave():
mode = request.args.get('mode')
year = request.args.get('year')
k = request.args.get('k')
T = request.args.get('T')
year = int(year)
k = int(k)
T = int(T)
tidi_render(mode, year, k, T)
buffer = BytesIO()
plt.savefig(buffer, format="png")
buffer.seek(0)
return await send_file(buffer, mimetype="image/png")
@tidi_module.route('/render/month_stats_v1')
async def render_stats_v1():
year = request.args.get('year')
year = int(year)
plotter = TidiPlotv2(year)
plotter.plot_v1()
buffer = BytesIO()
plt.savefig(buffer, format="png")
buffer.seek(0)
return await send_file(buffer, mimetype="image/png")
@tidi_module.route('/render/month_stats_v2')
async def render_stats_v2():
year = request.args.get('year')
year = int(year)
plotter = TidiPlotv2(year)
plotter.plot_month()
buffer = BytesIO()
plt.savefig(buffer, format="png")
buffer.seek(0)
return await send_file(buffer, mimetype="image/png")