Files
PWF/Application/app.py
2025-11-05 16:21:05 +08:00

62 lines
1.7 KiB
Python

from ..Convention.Runtime.GlobalConfig import ProjectConfig, ConsoleFrontColor
from ..CoreModules.flags import set_internal_verbose
from .web import app
from argparse import ArgumentParser
from typing import *
import sys
import uvicorn
def main() -> int:
config = ProjectConfig()
parser = ArgumentParser()
parser.add_argument("--main-webhook-url", type=str, default=config.FindItem("main_webhook_url", ""))
parser.add_argument("--host", type=str, default=config.FindItem("host", "0.0.0.0"))
parser.add_argument("--port", type=int, default=config.FindItem("port", 8000))
parser.add_argument("--verbose", type=bool, default=config.FindItem("verbose", False))
args = parser.parse_args()
config.SaveProperties()
if "help" in args:
parser.print_help()
return 0
# region Main Webhook URL
webhook_url = args.main_webhook_url
if not webhook_url or webhook_url == "":
config.Log("Fatal", f"{ConsoleFrontColor.RED}Main webhook URL is not set{ConsoleFrontColor.RESET}")
return 1
config.Log("Info", f"{ConsoleFrontColor.GREEN}Main webhook URL: {webhook_url}{ConsoleFrontColor.RESET}")
# endregion Main Webhook URL
# region Verbose
verbose = args.verbose
set_internal_verbose(verbose)
config.Log("Info", f"{ConsoleFrontColor.GREEN}Verbose: {verbose}{ConsoleFrontColor.RESET}")
# endregion Verbose
# region Server
host = args.host
port = args.port
config.Log("Info", f"{ConsoleFrontColor.GREEN}Server: {host}:{port}{ConsoleFrontColor.RESET}")
# endregion Server
uvicorn.run(app, host=host, port=port,
limit_concurrency=5,
log_level="info")
return 0
if __name__ == "__main__":
sys.exit(main())
__all__ = ["main"]