From cad7b53aa4c29d0bdd7ec0dac31c0741ae7dacc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B6=B5=E6=9B=A6?= Date: Mon, 29 Jan 2024 23:10:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AE=BE=E7=BD=AE=E5=A3=B0?= =?UTF-8?q?=E9=9F=B3=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- xiaomusic/config.py | 38 +++++++++++++++++++++---------------- xiaomusic/static/app.js | 33 ++++++++++++++++++++++++-------- xiaomusic/static/index.html | 9 +++++++++ xiaomusic/xiaomusic.py | 34 ++++++++++++++++++++++++++------- 4 files changed, 83 insertions(+), 31 deletions(-) diff --git a/xiaomusic/config.py b/xiaomusic/config.py index 085fd6d..611e77f 100644 --- a/xiaomusic/config.py +++ b/xiaomusic/config.py @@ -12,22 +12,22 @@ LATEST_ASK_API = "https://userprofile.mina.mi.com/device_profile/v2/conversation COOKIE_TEMPLATE = "deviceId={device_id}; serviceToken={service_token}; userId={user_id}" HARDWARE_COMMAND_DICT = { - # hardware: (tts_command, wakeup_command) - "LX06": ("5-1", "5-5"), - "L05B": ("5-3", "5-4"), - "S12A": ("5-1", "5-5"), - "LX01": ("5-1", "5-5"), - "L06A": ("5-1", "5-5"), - "LX04": ("5-1", "5-4"), - "L05C": ("5-3", "5-4"), - "L17A": ("7-3", "7-4"), - "X08E": ("7-3", "7-4"), - "LX05A": ("5-1", "5-5"), # 小爱红外版 - "LX5A": ("5-1", "5-5"), # 小爱红外版 - "L07A": ("5-1", "5-5"), # Redmi小爱音箱Play(l7a) - "L15A": ("7-3", "7-4"), - "X6A": ("7-3", "7-4"), # 小米智能家庭屏6 - "X10A": ("7-3", "7-4"), # 小米智能家庭屏10 + # hardware: (tts_command, wakeup_command, volume_command) + "LX06": ("5-1", "5-5", "2-1"), + "L05B": ("5-3", "5-4", "2-1"), + "S12A": ("5-1", "5-5", "2-1"), + "LX01": ("5-1", "5-5", "2-1"), + "L06A": ("5-1", "5-5", "2-1"), + "LX04": ("5-1", "5-4", "2-1"), + "L05C": ("5-3", "5-4", "2-1"), + "L17A": ("7-3", "7-4", "2-1"), + "X08E": ("7-3", "7-4", "2-1"), + "LX05A": ("5-1", "5-5", "2-1"), # 小爱红外版 + "LX5A": ("5-1", "5-5", "2-1"), # 小爱红外版 + "L07A": ("5-1", "5-5", "2-1"), # Redmi小爱音箱Play(l7a) + "L15A": ("7-3", "7-4", "2-1"), + "X6A": ("7-3", "7-4", "2-1"), # 小米智能家庭屏6 + "X10A": ("7-3", "7-4", "2-1"), # 小米智能家庭屏10 # add more here } @@ -43,6 +43,7 @@ KEY_WORD_DICT = { "关机": "stop", "停止播放": "stop", "分钟后关机": "stop_after_minute", + "set_volume#": "set_volume", } # 命令参数在前面 @@ -52,6 +53,7 @@ KEY_WORD_ARG_BEFORE_DICT = { # 匹配优先级 KEY_MATCH_ORDER = [ + "set_volume#", "分钟后关机", "播放歌曲", "放歌曲", @@ -96,6 +98,10 @@ class Config: def wakeup_command(self) -> str: return HARDWARE_COMMAND_DICT.get(self.hardware, DEFAULT_COMMAND)[1] + @property + def volume_command(self) -> str: + return HARDWARE_COMMAND_DICT.get(self.hardware, DEFAULT_COMMAND)[2] + @classmethod def from_options(cls, options: argparse.Namespace) -> Config: config = {} diff --git a/xiaomusic/static/app.js b/xiaomusic/static/app.js index 811927a..1f3f5c5 100644 --- a/xiaomusic/static/app.js +++ b/xiaomusic/static/app.js @@ -6,18 +6,35 @@ $(function(){ $container=$("#cmds"); // 遍历数据 for (const [key, value] of Object.entries(data)) { - if (key != "分钟后关机" && key != "放歌曲") { - append_op_button(key); + if (key != "分钟后关机" + && key != "放歌曲" + && key != "停止播放" + && !key.includes("#")) { + append_op_button_name(key); } } - append_op_button("5分钟后关机"); - append_op_button("10分钟后关机"); - append_op_button("30分钟后关机"); - append_op_button("60分钟后关机"); + $container.append($("
")); + append_op_button_name("10分钟后关机"); + append_op_button_name("30分钟后关机"); + append_op_button_name("60分钟后关机"); + + $container.append($("
")); + append_op_button_volume("声音设为5", 5); + append_op_button_volume("声音设为10", 10); + append_op_button_volume("声音设为30", 30); + append_op_button_volume("声音设为50", 50); + append_op_button_volume("声音设为80", 80); + append_op_button_volume("声音设为100", 100); }); - function append_op_button(name) { + function append_op_button_volume(name, value) { + append_op_button(name, "set_volume#"+value); + } + function append_op_button_name(name) { + append_op_button(name, name); + } + function append_op_button(name, cmd) { // 创建按钮 const $button = $("