From 612eb636beef2cf2d36996d56c7db3cadba39251 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E9=AB=98=E7=A3=8A?= Date: Wed, 3 Apr 2024 14:12:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E6=90=9C=E7=B4=A2=E8=AF=8D=E5=88=86?= =?UTF-8?q?=E4=B8=BA=E6=90=9C=E7=B4=A2=E8=AF=8D=E5=8F=8A=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=90=8D=E4=B8=A4=E9=83=A8=E5=88=86,=E4=BE=BF=E4=BA=8E?= =?UTF-8?q?=E6=9B=B4=E7=B2=BE=E7=A1=AE=E6=90=9C=E7=B4=A2=E4=BB=A5=E5=8F=8A?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E4=BF=9D=E5=AD=98=E4=B8=8B=E8=BD=BD=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E6=96=87=E4=BB=B6=E5=90=8D=E7=9A=84=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- xiaomusic/static/app.js | 5 +++-- xiaomusic/static/index.html | 3 ++- xiaomusic/xiaomusic.py | 21 ++++++++++++--------- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/xiaomusic/static/app.js b/xiaomusic/static/app.js index 6cd9349..ed818c3 100644 --- a/xiaomusic/static/app.js +++ b/xiaomusic/static/app.js @@ -39,8 +39,9 @@ $(function(){ } $("#play").on("click", () => { - name = $("#music-name").val(); - let cmd = "播放歌曲"+name; + var search_key = $("#music-name").val(); + var filename=$("#music-filename").val(); + let cmd = "播放歌曲"+search_key+"|"+filename; sendcmd(cmd); }); diff --git a/xiaomusic/static/index.html b/xiaomusic/static/index.html index 569ee80..31eaed3 100644 --- a/xiaomusic/static/index.html +++ b/xiaomusic/static/index.html @@ -44,7 +44,8 @@
- + +
diff --git a/xiaomusic/xiaomusic.py b/xiaomusic/xiaomusic.py index ce1bc70..25b6a22 100644 --- a/xiaomusic/xiaomusic.py +++ b/xiaomusic/xiaomusic.py @@ -299,7 +299,7 @@ class XiaoMusic: return True # 下载歌曲 - async def download(self, name): + async def download(self, search_key,name): if self.download_proc: try: self.download_proc.kill() @@ -308,7 +308,7 @@ class XiaoMusic: sbp_args = ( "yt-dlp", - f"{self.search_prefix}{name}", + f"{self.search_prefix}{search_key}", "-x", "--audio-format", "mp3", @@ -325,7 +325,7 @@ class XiaoMusic: sbp_args += ("--proxy", f"{self.proxy}") self.download_proc = await asyncio.create_subprocess_exec(*sbp_args) - await self.do_tts(f"正在下载歌曲{name}") + await self.do_tts(f"正在下载歌曲{search_key}") # 本地是否存在歌曲 def get_filename(self, name): @@ -484,15 +484,18 @@ class XiaoMusic: # 播放歌曲 async def play(self, **kwargs): - name = kwargs["arg1"] - if name == "": + search_key,name = kwargs["arg1"].split('|') + #空值填充: + search_key = search_key if search_key else name + name = name if name else search_key + if search_key == "" and name == "": await self.play_next() - return - + return filename = self.get_filename(name) + if len(filename) <= 0: - await self.download(name) - self.log.info("正在下载中 %s", name) + await self.download(search_key,name) + self.log.info("正在下载中 %s", search_key+":"+name) await self.download_proc.wait() # 把文件插入到播放列表里 self.add_download_music(name)