diff --git a/xiaomusic/api/routers/device.py b/xiaomusic/api/routers/device.py index 18c43f9..e3a1712 100644 --- a/xiaomusic/api/routers/device.py +++ b/xiaomusic/api/routers/device.py @@ -19,11 +19,11 @@ from xiaomusic.api.models import ( DidVolume, ) -router = APIRouter() +router = APIRouter(dependencies=[Depends(verification)]) @router.get("/getvolume") -async def getvolume(did: str = "", Verifcation=Depends(verification)): +async def getvolume(did: str = ""): """获取音量""" if not xiaomusic.did_exist(did): return {"volume": 0} @@ -33,7 +33,7 @@ async def getvolume(did: str = "", Verifcation=Depends(verification)): @router.post("/setvolume") -async def setvolume(data: DidVolume, Verifcation=Depends(verification)): +async def setvolume(data: DidVolume): """设置音量""" did = data.did volume = data.volume @@ -46,7 +46,7 @@ async def setvolume(data: DidVolume, Verifcation=Depends(verification)): @router.post("/cmd") -async def do_cmd(data: DidCmd, Verifcation=Depends(verification)): +async def do_cmd(data: DidCmd): """执行命令""" did = data.did cmd = data.cmd @@ -66,7 +66,7 @@ async def do_cmd(data: DidCmd, Verifcation=Depends(verification)): @router.get("/cmdstatus") -async def cmd_status(Verifcation=Depends(verification)): +async def cmd_status(): """命令状态""" finish = await xiaomusic.is_task_finish() if finish: @@ -75,7 +75,7 @@ async def cmd_status(Verifcation=Depends(verification)): @router.get("/playurl") -async def playurl(did: str, url: str, Verifcation=Depends(verification)): +async def playurl(did: str, url: str): """播放 URL""" if not xiaomusic.did_exist(did): return {"ret": "Did not exist"} @@ -85,7 +85,7 @@ async def playurl(did: str, url: str, Verifcation=Depends(verification)): @router.get("/playtts") -async def playtts(did: str, text: str, Verifcation=Depends(verification)): +async def playtts(did: str, text: str): """播放 TTS""" if not xiaomusic.did_exist(did): return {"ret": "Did not exist"} @@ -96,7 +96,7 @@ async def playtts(did: str, text: str, Verifcation=Depends(verification)): @router.post("/device/stop") -async def stop(data: Did, Verifcation=Depends(verification)): +async def stop(data: Did): """关机""" did = data.did log.info(f"stop did:{did}") diff --git a/xiaomusic/auth.py b/xiaomusic/auth.py index b394578..d7e2f71 100644 --- a/xiaomusic/auth.py +++ b/xiaomusic/auth.py @@ -48,7 +48,7 @@ class AuthManager: # 当前设备DID(用于设备ID更新) self._cur_did = None - + self.device_id = get_random(16).upper() self.mi_session = ClientSession() self.device_manager = device_manager @@ -172,8 +172,9 @@ class AuthManager: account.token = { "passToken": cookies_dict["passToken"], "userId": cookies_dict["userId"], - "deviceId": get_random(16).upper(), + "deviceId": self.device_id, } + self.log.info(f"设置token到account:{accout.token}") def get_cookie(self): """获取Cookie diff --git a/xiaomusic/device_manager.py b/xiaomusic/device_manager.py index a9f5dbf..0e8c10a 100644 --- a/xiaomusic/device_manager.py +++ b/xiaomusic/device_manager.py @@ -50,11 +50,9 @@ class DeviceManager: # 构建 device_id 到 did 的映射 self.device_id_did[device.device_id] = did group_name = did2group.get(did) - if not group_name: + if not group_name or group_name is None: group_name = device.name - if group_name not in self.groups: - self.groups[group_name] = [] - self.groups[group_name].append(device.device_id) + self.groups.setdefault(group_name, []).append(device.device_id) self.devices[did] = XiaoMusicDevice(self.xiaomusic, device, group_name) self.log.info(f"设备列表已更新: device_id_did={self.device_id_did}")