diff --git a/xiaomusic/httpserver.py b/xiaomusic/httpserver.py index 20e5954..3d7e5bb 100644 --- a/xiaomusic/httpserver.py +++ b/xiaomusic/httpserver.py @@ -127,11 +127,13 @@ async def do_cmd(): @app.route("/getsetting", methods=["GET"]) @auth.login_required async def getsetting(): + need_device_list = request.args.get("need_device_list") config = xiaomusic.getconfig() data = asdict(config) - device_list = await xiaomusic.call_main_thread_function(xiaomusic.getalldevices) - log.info(f"getsetting device_list: {device_list}") - data["device_list"] = device_list + if need_device_list == "true": + device_list = await xiaomusic.call_main_thread_function(xiaomusic.getalldevices) + log.info(f"getsetting device_list: {device_list}") + data["device_list"] = device_list return data diff --git a/xiaomusic/static/app.js b/xiaomusic/static/app.js index 70556d8..1afbcce 100644 --- a/xiaomusic/static/app.js +++ b/xiaomusic/static/app.js @@ -35,14 +35,11 @@ $(function(){ $("#did").empty(); var dids = data.mi_did.split(','); $.each(dids, function(index, value) { - var device = data.device_list.find(function(device) { - return device.miotDID == value; - }); - - if (device) { + var cur_device = Object.values(data.devices).find(device => device.did === value); + if (cur_device) { var option = $('') .val(value) - .text(device.name) + .text(cur_device.name) .prop('selected', value === did); $("#did").append(option); } diff --git a/xiaomusic/static/setting.js b/xiaomusic/static/setting.js index fe93e2d..845913b 100644 --- a/xiaomusic/static/setting.js +++ b/xiaomusic/static/setting.js @@ -62,7 +62,7 @@ $(function(){ } // 拉取现有配置 - $.get("/getsetting", function(data, status) { + $.get("/getsetting?need_device_list=true", function(data, status) { console.log(data, status); updateCheckbox("#mi_did", data.mi_did, data.device_list);