diff --git a/xiaomusic/httpserver.py b/xiaomusic/httpserver.py index 0ae24d2..7253033 100644 --- a/xiaomusic/httpserver.py +++ b/xiaomusic/httpserver.py @@ -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() diff --git a/xiaomusic/xiaomusic.py b/xiaomusic/xiaomusic.py index d484ebd..aff5d6f 100644 --- a/xiaomusic/xiaomusic.py +++ b/xiaomusic/xiaomusic.py @@ -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):