chore: initialize sandbox and overwrite remote content
Some checks failed
Pre-commit / run (ubuntu-latest) (push) Has been cancelled
Deploy Sphinx documentation to Pages / build_en (ubuntu-latest, 3.10) (push) Has been cancelled
Deploy Sphinx documentation to Pages / build_zh (ubuntu-latest, 3.10) (push) Has been cancelled
Python Unittest Coverage / test (macos-15, 3.10) (push) Has been cancelled
Python Unittest Coverage / test (macos-15, 3.11) (push) Has been cancelled
Python Unittest Coverage / test (macos-15, 3.12) (push) Has been cancelled
Python Unittest Coverage / test (ubuntu-latest, 3.10) (push) Has been cancelled
Python Unittest Coverage / test (ubuntu-latest, 3.11) (push) Has been cancelled
Python Unittest Coverage / test (ubuntu-latest, 3.12) (push) Has been cancelled
Python Unittest Coverage / test (windows-latest, 3.10) (push) Has been cancelled
Python Unittest Coverage / test (windows-latest, 3.11) (push) Has been cancelled
Python Unittest Coverage / test (windows-latest, 3.12) (push) Has been cancelled
Some checks failed
Pre-commit / run (ubuntu-latest) (push) Has been cancelled
Deploy Sphinx documentation to Pages / build_en (ubuntu-latest, 3.10) (push) Has been cancelled
Deploy Sphinx documentation to Pages / build_zh (ubuntu-latest, 3.10) (push) Has been cancelled
Python Unittest Coverage / test (macos-15, 3.10) (push) Has been cancelled
Python Unittest Coverage / test (macos-15, 3.11) (push) Has been cancelled
Python Unittest Coverage / test (macos-15, 3.12) (push) Has been cancelled
Python Unittest Coverage / test (ubuntu-latest, 3.10) (push) Has been cancelled
Python Unittest Coverage / test (ubuntu-latest, 3.11) (push) Has been cancelled
Python Unittest Coverage / test (ubuntu-latest, 3.12) (push) Has been cancelled
Python Unittest Coverage / test (windows-latest, 3.10) (push) Has been cancelled
Python Unittest Coverage / test (windows-latest, 3.11) (push) Has been cancelled
Python Unittest Coverage / test (windows-latest, 3.12) (push) Has been cancelled
This commit is contained in:
45
qingjian_cs/run.py
Normal file
45
qingjian_cs/run.py
Normal file
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env python3
|
||||
import argparse
|
||||
import threading
|
||||
|
||||
from app.client import QingjianClient
|
||||
from app.config import HTTP_HOST, HTTP_PORT
|
||||
from app.http_api import run_http_server
|
||||
from app.logger import setup_logger
|
||||
from app.task_manager import TaskManager
|
||||
|
||||
|
||||
logger = setup_logger()
|
||||
|
||||
|
||||
def start_http(host: str, port: int, tm: TaskManager):
|
||||
run_http_server(host=host, port=port, task_manager=tm)
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description='Qingjian CS launcher')
|
||||
mode = parser.add_mutually_exclusive_group()
|
||||
mode.add_argument('--api-only', action='store_true', help='only run HTTP API')
|
||||
mode.add_argument('--tianwang', action='store_true', help='run HTTP API + websocket client')
|
||||
parser.add_argument('--host', default=HTTP_HOST)
|
||||
parser.add_argument('--port', type=int, default=HTTP_PORT)
|
||||
args = parser.parse_args()
|
||||
|
||||
tm = TaskManager()
|
||||
|
||||
if args.api_only:
|
||||
logger.info('启动模式: API Only %s:%s', args.host, args.port)
|
||||
start_http(args.host, args.port, tm)
|
||||
return
|
||||
|
||||
if args.tianwang:
|
||||
logger.info('启动模式: Tianwang (API + WebSocket)')
|
||||
th = threading.Thread(target=start_http, args=(args.host, args.port, tm), daemon=True)
|
||||
th.start()
|
||||
|
||||
logger.info('启动模式: WebSocket')
|
||||
QingjianClient().run()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Reference in New Issue
Block a user