新增删除歌曲按钮

This commit is contained in:
涵曦 2024-06-14 15:14:34 +00:00
parent 9714f3d064
commit e79afa46b3
6 changed files with 45 additions and 4 deletions

View File

@ -1,6 +1,6 @@
[project] [project]
name = "xiaomusic" name = "xiaomusic"
version = "0.1.41" version = "0.1.42"
description = "Play Music with xiaomi AI speaker" description = "Play Music with xiaomi AI speaker"
authors = [ authors = [
{name = "涵曦", email = "im.hanxi@gmail.com"}, {name = "涵曦", email = "im.hanxi@gmail.com"},

View File

@ -1 +1 @@
__version__ = "0.1.41" __version__ = "0.1.42"

View File

@ -108,6 +108,12 @@ async def musiclist():
async def curplaylist(): async def curplaylist():
return xiaomusic.get_cur_play_list() return xiaomusic.get_cur_play_list()
@app.route("/delmusic", methods=["POST"])
def delmusic():
data = request.get_json()
log.info(data)
xiaomusic.del_music(data["name"])
return 'success'
def static_path_handler(filename): def static_path_handler(filename):
log.debug(filename) log.debug(filename)

View File

@ -59,7 +59,27 @@ $(function(){
var music_name = $("#music_name").val(); var music_name = $("#music_name").val();
let cmd = "播放列表" + music_list + "|" + music_name; let cmd = "播放列表" + music_list + "|" + music_name;
sendcmd(cmd); sendcmd(cmd);
}) });
$("#del_music").on("click", () => {
var del_music_name = $("#music_name").val();
if (confirm(`确定删除歌曲 ${del_music_name} 吗?`)) {
console.log(`删除歌曲 ${del_music_name}`);
$.ajax({
type: 'POST',
url: '/delmusic',
data: JSON.stringify({"name": del_music_name}),
contentType: "application/json; charset=utf-8",
success: () => {
alert(`删除 ${del_music_name} 成功`);
refresh_music_list();
},
error: () => {
alert(`删除 ${del_music_name} 失败`);
}
});
}
});
function append_op_button_name(name) { function append_op_button_name(name) {
append_op_button(name, name); append_op_button(name, name);
@ -96,7 +116,7 @@ $(function(){
$.ajax({ $.ajax({
type: "POST", type: "POST",
url: "/cmd", url: "/cmd",
contentType: "application/json", contentType: "application/json; charset=utf-8",
data: JSON.stringify({cmd: cmd}), data: JSON.stringify({cmd: cmd}),
success: () => { success: () => {
if (cmd == "刷新列表") { if (cmd == "刷新列表") {

View File

@ -41,6 +41,7 @@
<select id="music_name"></select> <select id="music_name"></select>
</div> </div>
<button id="play_music_list">播放列表歌曲</button> <button id="play_music_list">播放列表歌曲</button>
<button id="del_music">删除选中歌曲</button>
<footer> <footer>
<p>Powered by <a href="https://github.com/hanxi/xiaomusic" target="_blank">xiaomusic</a></p> <p>Powered by <a href="https://github.com/hanxi/xiaomusic" target="_blank">xiaomusic</a></p>

View File

@ -587,6 +587,20 @@ class XiaoMusic:
self._gen_all_music_list() self._gen_all_music_list()
await self.do_tts("生成播放列表完毕") await self.do_tts("生成播放列表完毕")
# 删除歌曲
def del_music(self, name):
filename = self.get_filename(name)
if filename == "":
self.log.info(f"${name} not exist")
return
try:
os.remove(filename)
self.log.info(f"del ${filename} success")
except OSError:
self.log.error(f"del ${filename} failed")
pass
self._gen_all_music_list()
# 播放一个播放列表 # 播放一个播放列表
async def play_music_list(self, **kwargs): async def play_music_list(self, **kwargs):
parts = kwargs["arg1"].split("|") parts = kwargs["arg1"].split("|")