feat: 添加计划表下拉框接口

This commit is contained in:
DLmaster361
2025-08-15 23:07:18 +08:00
parent 22a8cdb8d8
commit 1fdac22bea
2 changed files with 65 additions and 8 deletions

View File

@@ -84,6 +84,24 @@ async def get_task_combox() -> ComboBoxOut:
return ComboBoxOut(data=data) return ComboBoxOut(data=data)
@router.post(
"/combox/plan",
summary="获取可选计划下拉框信息",
response_model=ComboBoxOut,
status_code=200,
)
async def get_plan_combox() -> ComboBoxOut:
try:
raw_data = await Config.get_plan_combox()
data = [ComboBoxItem(**item) for item in raw_data] if raw_data else []
except Exception as e:
return ComboBoxOut(
code=500, status="error", message=f"{type(e).__name__}: {str(e)}", data=[]
)
return ComboBoxOut(data=data)
@router.post( @router.post(
"/notice/get", summary="获取通知信息", response_model=NoticeOut, status_code=200 "/notice/get", summary="获取通知信息", response_model=NoticeOut, status_code=200
) )
@@ -130,6 +148,23 @@ async def confirm_notice() -> OutBase:
# return InfoOut(data=data) # return InfoOut(data=data)
@router.post(
"/startuptask",
summary="获取启动时运行的队列ID",
response_model=InfoOut,
status_code=200,
)
async def get_startup_task() -> InfoOut:
try:
data = await Config.get_startup_task()
except Exception as e:
return InfoOut(
code=500, status="error", message=f"{type(e).__name__}: {str(e)}", data={}
)
return InfoOut(data={"queueIdList": data})
@router.post( @router.post(
"/get/overview", summary="信息总览", response_model=InfoOut, status_code=200 "/get/overview", summary="信息总览", response_model=InfoOut, status_code=200
) )

View File

@@ -269,7 +269,7 @@ class MaaUserConfig(ConfigBase):
self.Info_Mode = ConfigItem( self.Info_Mode = ConfigItem(
"Info", "Mode", "简洁", OptionsValidator(["简洁", "详细"]) "Info", "Mode", "简洁", OptionsValidator(["简洁", "详细"])
) )
self.Info_StageMode = ConfigItem("Info", "StageMode", "固定") self.Info_StageMode = ConfigItem("Info", "StageMode", "Fixed")
self.Info_Server = ConfigItem( self.Info_Server = ConfigItem(
"Info", "Info",
"Server", "Server",
@@ -375,7 +375,7 @@ class MaaUserConfig(ConfigBase):
def get_plan_info(self) -> Dict[str, Union[str, int]]: def get_plan_info(self) -> Dict[str, Union[str, int]]:
"""获取当前的计划下信息""" """获取当前的计划下信息"""
if self.get("Info", "StageMode") == "固定": if self.get("Info", "StageMode") == "Fixed":
return { return {
"MedicineNumb": self.get("Info", "MedicineNumb"), "MedicineNumb": self.get("Info", "MedicineNumb"),
"SeriesNumb": self.get("Info", "SeriesNumb"), "SeriesNumb": self.get("Info", "SeriesNumb"),
@@ -898,8 +898,6 @@ class AppConfig(GlobalConfig):
else: else:
data = await self.QueueConfig.get(uuid.UUID(queue_id)) data = await self.QueueConfig.get(uuid.UUID(queue_id))
print(data)
index = data.pop("instances", []) index = data.pop("instances", [])
return list(index), data return list(index), data
@@ -1379,12 +1377,12 @@ class AppConfig(GlobalConfig):
async def get_task_combox(self): async def get_task_combox(self):
"""获取任务下拉框信息""" """获取任务下拉框信息"""
logger.info("Getting task combo box information...") logger.info("开始获取任务下拉框信息")
data = [{"label": "未选择", "value": None}] data = [{"label": "未选择", "value": None}]
for uid, script in self.QueueConfig.items(): for uid, queue in self.QueueConfig.items():
data.append( data.append(
{ {
"label": f"队列 - {script.get('Info', 'Name')}", "label": f"队列 - {queue.get('Info', 'Name')}",
"value": str(uid), "value": str(uid),
} }
) )
@@ -1395,7 +1393,18 @@ class AppConfig(GlobalConfig):
"value": str(uid), "value": str(uid),
} }
) )
logger.success("Task combo box information retrieved successfully.") logger.success("任务下拉框信息获取成功")
return data
async def get_plan_combox(self):
"""获取计划下拉框信息"""
logger.info("开始获取计划下拉框信息")
data = [{"label": "固定", "value": "Fixed"}]
for uid, plan in self.PlanConfig.items():
data.append({"label": plan.get("Info", "Name"), "value": str(uid)})
logger.success("计划下拉框信息获取成功")
return data return data
@@ -1452,6 +1461,19 @@ class AppConfig(GlobalConfig):
return self.get("Data", "IfShowNotice"), remote_notice.get("notice_dict", {}) return self.get("Data", "IfShowNotice"), remote_notice.get("notice_dict", {})
async def get_startup_task(self):
"""获取启动时需要运行的队列信息"""
logger.info("获取启动时需要运行的队列信息")
data = [
str(uid)
for uid, queue in self.QueueConfig.items()
if queue.get("Info", "StartUpEnabled")
]
logger.success("启动时需要运行的队列信息获取成功")
return data
async def save_maa_log(self, log_path: Path, logs: list, maa_result: str) -> bool: async def save_maa_log(self, log_path: Path, logs: list, maa_result: str) -> bool:
""" """
保存MAA日志并生成对应统计数据 保存MAA日志并生成对应统计数据