from web import create_app
from core.ModelManager import mMM
import  os
import platform
import shutil
import asyncio
from hypercorn.asyncio import serve
from hypercorn.config import Config
from core.DBManager import mDBM
from core.Upload_file import allowed_file,check_file,updata_model

print(f"Current working directory (run.py): {os.getcwd()}")
web = create_app()
async def run_quart_app():
    config = Config()
    config.bind = ["0.0.0.0:5001"]
    await serve(web, config)

def test():
    filepath = "uploads/RYRQ_Model_ACL.zip"
    check_file(filepath,2)

if __name__ == '__main__':
    #test()

    system = platform.system()
    if system == "Windows":
        total, used, free = shutil.disk_usage("/")
    elif system == "Linux":
        """获取Linux系统的剩余存储空间"""
        statvfs = os.statvfs(os.getcwd())
        free = statvfs.f_bavail * statvfs.f_frsize
    else:
        raise NotImplementedError(f"Unsupported operating system: {system}")
    print(free/(1024*1024))
    mMM.start_work()  # 启动所有通道的处理
    #mVManager.start_check_rtsp()  #线程更新视频在线情况
    asyncio.run(run_quart_app())