feat: 新增接口 /cmdstatus 用于查询异步任务是否执行完毕

This commit is contained in:
涵曦 2024-10-07 04:19:45 +08:00
parent b3af44f42c
commit 01ed21f83d
2 changed files with 17 additions and 0 deletions

View File

@ -203,6 +203,14 @@ async def do_cmd(data: DidCmd, Verifcation=Depends(verification)):
return {"ret": "Unknow cmd"}
@app.get("/cmdstatus")
async def cmd_status(Verifcation=Depends(verification)):
finish = await xiaomusic.is_task_finish()
if finish:
return {"ret": "OK", "status": "finish"}
return {"ret": "OK", "status": "running"}
@app.get("/getsetting")
async def getsetting(need_device_list: bool = False, Verifcation=Depends(verification)):
config = xiaomusic.getconfig()

View File

@ -753,6 +753,14 @@ class XiaoMusic:
await asyncio.gather(*self.running_task, return_exceptions=True)
self.running_task = []
async def is_task_finish(self):
if len(self.running_task) == 0:
return True
task = self.running_task[0]
if task and task.done():
return True
return False
async def check_replay(self, did):
return await self.devices[did].check_replay()
@ -869,6 +877,7 @@ class XiaoMusic:
# 设置为刷新列表
async def gen_music_list(self, **kwargs):
self._gen_all_music_list()
self.log.info("gen_music_list ok")
# 删除歌曲
def del_music(self, name):