Skip to content

Commit 1ebe314

Browse files
yltxgithub-actions[bot]pre-commit-ci[bot]
authored
feat: 添加 POST /api/repair/ship 端点 (#370)
* ci: 每30分钟自动同步上游仓库 * feat: 添加 POST /api/repair/ship 端点 — 按舰船名泡澡修理 添加 /api/repair/ship 路由,接受 ship_name 参数,调用已有的 repair_ship_by_name() 函数将指定舰船送入浴室修理。 返回修理时间(秒),浴场已满时返回错误。 此端点供 AutoWSGR-GUI 前端的泡澡修理系统使用。 * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent cfa4425 commit 1ebe314

1 file changed

Lines changed: 39 additions & 0 deletions

File tree

autowsgr/server/routes/ops.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,45 @@ async def repair_bath():
197197
return ApiResponse(success=False, error=str(e))
198198

199199

200+
class RepairShipRequest(BaseModel):
201+
"""按舰船名泡澡修理请求。"""
202+
203+
ship_name: str
204+
205+
206+
@router.post('/api/repair/ship', response_model=ApiResponse)
207+
async def repair_ship(request: RepairShipRequest):
208+
"""使用浴室修理指定名称的舰船。
209+
210+
前端泡澡修理系统调用此端点,将指定舰船送入浴室修理。
211+
后端会导航到浴室页面,打开选择修理 overlay,查找并点击指定舰船。
212+
"""
213+
try:
214+
ctx = get_context()
215+
except RuntimeError as e:
216+
raise HTTPException(status_code=503, detail=str(e)) from e
217+
218+
_require_idle()
219+
220+
from autowsgr.ops.repair import repair_ship_by_name
221+
222+
try:
223+
repair_secs = await asyncio.to_thread(repair_ship_by_name, ctx, request.ship_name)
224+
if repair_secs < 0:
225+
return ApiResponse(
226+
success=False,
227+
error=f'浴场已满,无法修理 {request.ship_name}',
228+
)
229+
return ApiResponse(
230+
success=True,
231+
data={'ship_name': request.ship_name, 'repair_seconds': repair_secs},
232+
message=f'{request.ship_name} 已送入泡澡修理 ({repair_secs}s)',
233+
)
234+
except Exception as e:
235+
_log.opt(exception=True).warning('[API] 泡澡修理失败: {}', e)
236+
return ApiResponse(success=False, error=str(e))
237+
238+
200239
# ── 解装 / 解体 ──
201240

202241

0 commit comments

Comments
 (0)