1
0
mirror of https://github.com/hanxi/xiaomusic.git synced 2026-03-19 08:49:45 +08:00

group_name可能为None情况,同时改用setdefault减少判断 (#694)

* group_name可能为None情况,同时改用setdefault减少判断

* 实例化AuthManager时创建device_id, 增加set_token记录

* device.py 中的接口验证统一放到APiRouter中
This commit is contained in:
fragrans
2026-01-16 16:31:08 +08:00
committed by GitHub
parent 978a4c9e1d
commit 02f6862b76
3 changed files with 13 additions and 14 deletions

View File

@@ -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}")

View File

@@ -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

View File

@@ -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}")