From 01ed21f83d536ebae7c736c738a27b5bf42d551e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B6=B5=E6=9B=A6?= Date: Mon, 7 Oct 2024 04:19:45 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E6=8E=A5=E5=8F=A3=20?= =?UTF-8?q?/cmdstatus=20=E7=94=A8=E4=BA=8E=E6=9F=A5=E8=AF=A2=E5=BC=82?= =?UTF-8?q?=E6=AD=A5=E4=BB=BB=E5=8A=A1=E6=98=AF=E5=90=A6=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E5=AE=8C=E6=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- xiaomusic/httpserver.py | 8 ++++++++ xiaomusic/xiaomusic.py | 9 +++++++++ 2 files changed, 17 insertions(+) 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):