diff --git a/app/api/core.py b/app/api/core.py index 62c4588..25331cd 100644 --- a/app/api/core.py +++ b/app/api/core.py @@ -40,7 +40,9 @@ async def connect_websocket(websocket: WebSocket): await Broadcast.put(data) except asyncio.TimeoutError: await websocket.send_json( - WebSocketMessage(type="Signal", data={"Ping": "无描述"}).model_dump() + WebSocketMessage( + id="Main", type="Signal", data={"Ping": "无描述"} + ).model_dump() ) except WebSocketDisconnect: break diff --git a/app/core/task_manager.py b/app/core/task_manager.py index 818f14e..1342a0e 100644 --- a/app/core/task_manager.py +++ b/app/core/task_manager.py @@ -110,7 +110,7 @@ class _TaskManager: ) await Config.send_json( WebSocketMessage( - taskId=str(task_id), + id=str(task_id), type="Info", data={"Error": "脚本类型不支持"}, ).model_dump() @@ -136,7 +136,7 @@ class _TaskManager: ) await Config.send_json( WebSocketMessage( - taskId=str(task_id), + id=str(task_id), type="Info", data={"Error": "队列类型不支持"}, ).model_dump() @@ -170,7 +170,7 @@ class _TaskManager: task["status"] = "跳过" await Config.send_json( WebSocketMessage( - taskId=str(task_id), + id=str(task_id), type="Update", data={"task_list": task_list}, ).model_dump() @@ -182,7 +182,7 @@ class _TaskManager: task["status"] = "运行" await Config.send_json( WebSocketMessage( - taskId=str(task_id), + id=str(task_id), type="Update", data={"task_list": task_list}, ).model_dump() @@ -199,7 +199,7 @@ class _TaskManager: ) await Config.send_json( WebSocketMessage( - taskId=str(task_id), + id=str(task_id), type="Info", data={"Error": "脚本类型不支持"}, ).model_dump() @@ -260,7 +260,7 @@ class _TaskManager: await Config.send_json( WebSocketMessage( - taskId=str(task_id), type="Signal", data={"Accomplish": "无描述"} + id=str(task_id), type="Signal", data={"Accomplish": "无描述"} ).model_dump() ) diff --git a/app/models/schema.py b/app/models/schema.py index 67b978c..aee1a28 100644 --- a/app/models/schema.py +++ b/app/models/schema.py @@ -733,9 +733,7 @@ class TaskCreateOut(OutBase): class WebSocketMessage(BaseModel): - taskId: Optional[str] = Field( - default=None, description="任务ID, 不存在时表示消息来自主程序" - ) + id: str = Field(..., description="消息ID, 为Main时表示消息来自主进程") type: Literal["Update", "Message", "Info", "Signal"] = Field( ..., description="消息类型 Update: 更新数据, Message: 请求弹出对话框, Info: 需要在UI显示的消息, Signal: 程序信号", diff --git a/app/task/MAA.py b/app/task/MAA.py index e485fad..e81d7b6 100644 --- a/app/task/MAA.py +++ b/app/task/MAA.py @@ -120,7 +120,7 @@ class MaaManager: logger.error(f"未通过配置检查:{self.check_result}") await Config.send_json( WebSocketMessage( - taskId=self.ws_id, type="Info", data={"Error": self.check_result} + id=self.ws_id, type="Info", data={"Error": self.check_result} ).model_dump() ) return @@ -187,7 +187,7 @@ class MaaManager: user["status"] = "运行" await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Update", data={"user_list": self.user_list}, ).model_dump() @@ -196,7 +196,7 @@ class MaaManager: user["status"] = "跳过" await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Update", data={"user_list": self.user_list}, ).model_dump() @@ -231,7 +231,7 @@ class MaaManager: await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Update", data={"log": "正在执行森空岛签到中\n请稍候~"}, ).model_dump() @@ -250,7 +250,7 @@ class MaaManager: ) await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Info", data={ ( @@ -263,7 +263,7 @@ class MaaManager: logger.info(f"用户: {user['user_id']} - 森空岛签到失败") await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Info", data={ "Error": f"用户 {user['name']} 森空岛签到失败", @@ -287,7 +287,7 @@ class MaaManager: ) await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Info", data={ "Warning": f"用户 {user['name']} 未配置森空岛签到Token,跳过森空岛签到" @@ -331,7 +331,7 @@ class MaaManager: ) await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Info", data={"Error": f"未找到 {user['name']} 的详细配置文件"}, ).model_dump() @@ -342,7 +342,7 @@ class MaaManager: # 更新当前模式到界面 await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Update", data={ "user_status": { @@ -426,7 +426,7 @@ class MaaManager: logger.exception(f"解析快捷方式时出现异常:{e}") await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Info", data={ "Error": f"解析快捷方式时出现异常:{e}", @@ -439,7 +439,7 @@ class MaaManager: logger.error(f"模拟器快捷方式不存在:{self.emulator_path}") await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Info", data={ "Error": f"模拟器快捷方式 {self.emulator_path} 不存在", @@ -491,7 +491,7 @@ class MaaManager: logger.exception(f"释放ADB时出现异常:{e}") await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Info", data={"Warning": f"释放ADB时出现异常:{e}"}, ).model_dump() @@ -509,7 +509,7 @@ class MaaManager: logger.exception(f"启动模拟器时出现异常:{e}") await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Info", data={ "Error": "启动模拟器时出现异常,请检查MAA中模拟器路径设置" @@ -557,7 +557,7 @@ class MaaManager: ) await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Update", data={ "log": "检测到MAA进程完成代理任务\n正在等待相关程序结束\n请等待10s" @@ -573,7 +573,7 @@ class MaaManager: # 此时,log变量内存储的就是出现异常的日志信息,可以保存或发送用于问题排查 await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Update", data={ "log": f"{self.maa_result}\n正在中止相关程序\n请等待10s" @@ -617,7 +617,7 @@ class MaaManager: logger.exception(f"释放ADB时出现异常:{e}") await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Info", data={"Error": f"释放ADB时出现异常:{e}"}, ).model_dump() @@ -690,7 +690,7 @@ class MaaManager: await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Update", data={ "log": "检测到MAA存在更新\nMAA正在执行更新动作\n请等待10s" @@ -731,7 +731,7 @@ class MaaManager: user["status"] = "运行" await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Update", data={"user_list": self.user_list}, ).model_dump() @@ -778,7 +778,7 @@ class MaaManager: self.run_book["SignIn"] = True await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Update", data={"log": "检测到MAA进程成功登录PRTS"}, ).model_dump() @@ -789,7 +789,7 @@ class MaaManager: ) await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Update", data={ "log": f"{self.maa_result}\n正在中止相关程序\n请等待10s" @@ -812,7 +812,7 @@ class MaaManager: uid = str(uuid.uuid4()) await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Message", data={ "message_id": uid, @@ -832,7 +832,7 @@ class MaaManager: uid = str(uuid.uuid4()) await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Message", data={ "message_id": uid, @@ -850,7 +850,7 @@ class MaaManager: await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Update", data={"user_list": self.user_list}, ).model_dump() @@ -931,7 +931,7 @@ class MaaManager: await Config.send_json( WebSocketMessage( - taskId=self.ws_id, type="Update", data={"user_list": self.user_list} + id=self.ws_id, type="Update", data={"user_list": self.user_list} ).model_dump() ) @@ -1110,7 +1110,7 @@ class MaaManager: await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Update", data={ "log": f"即将搜索ADB实际地址\n正在等待模拟器完成启动\n请等待{self.wait_time}s" @@ -1201,7 +1201,7 @@ class MaaManager: await Config.send_json( WebSocketMessage( - taskId=self.ws_id, type="Update", data={"log": log} + id=self.ws_id, type="Update", data={"log": log} ).model_dump() ) @@ -1628,7 +1628,7 @@ class MaaManager: ) await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Info", data={ "warning": f"未选择用户 {self.cur_user_data.get('Info', 'Name')} 的自定义基建配置文件" diff --git a/app/task/general.py b/app/task/general.py index ff194d6..a05c4c2 100644 --- a/app/task/general.py +++ b/app/task/general.py @@ -162,7 +162,7 @@ class GeneralManager: logger.error(f"未通过配置检查:{self.check_result}") await Config.send_json( WebSocketMessage( - taskId=self.ws_id, type="Info", data={"Error": self.check_result} + id=self.ws_id, type="Info", data={"Error": self.check_result} ).model_dump() ) return @@ -229,7 +229,7 @@ class GeneralManager: user["status"] = "运行" await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Update", data={"user_list": self.user_list}, ).model_dump() @@ -238,7 +238,7 @@ class GeneralManager: user["status"] = "跳过" await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Update", data={"user_list": self.user_list}, ).model_dump() @@ -258,7 +258,7 @@ class GeneralManager: logger.error(f"用户: {user['user_id']} - 未找到配置文件") await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Info", data={"Error": f"未找到 {user['user_id']} 的配置文件"}, ).model_dump() @@ -311,7 +311,7 @@ class GeneralManager: logger.exception(f"启动游戏/模拟器时出现异常:{e}") await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Info", data={"Error": f"启动游戏/模拟器时出现异常:{e}"}, ).model_dump() @@ -332,7 +332,7 @@ class GeneralManager: await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Update", data={ "log": f"正在等待游戏/模拟器完成启动\n请等待{self.script_config.get('Game', 'WaitTime')}s" @@ -375,7 +375,7 @@ class GeneralManager: ) await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Update", data={ "log": "检测到通用脚本进程完成代理任务\n正在等待相关程序结束\n请等待10s" @@ -433,7 +433,7 @@ class GeneralManager: # 此时,log变量内存储的就是出现异常的日志信息,可以保存或发送用于问题排查 await Config.send_json( WebSocketMessage( - taskId=self.ws_id, + id=self.ws_id, type="Update", data={ "log": f"{self.general_result}\n正在中止相关程序\n请等待10s" @@ -777,7 +777,7 @@ class GeneralManager: await Config.send_json( WebSocketMessage( - taskId=self.ws_id, type="Update", data={"log": log} + id=self.ws_id, type="Update", data={"log": log} ).model_dump() )