1
0
mirror of https://github.com/hanxi/xiaomusic.git synced 2025-12-10 15:28:15 +08:00

Compare commits

..

6 Commits

Author SHA1 Message Date
涵曦
28797edc7c new version v0.1.48 2024-06-16 06:14:37 +00:00
涵曦
be1a643071 忽略目录默认值修改 2024-06-16 06:14:33 +00:00
涵曦
ee6b9778ac new version v0.1.47 2024-06-16 05:40:38 +00:00
涵曦
881c34bcb5 新增忽略目录的环境变量 2024-06-16 05:40:30 +00:00
涵曦
c22fc99235 new version v0.1.46 2024-06-15 15:56:22 +00:00
涵曦
0874efe58b 播放歌曲指令默认播放最后一次播放的歌曲 2024-06-15 15:56:15 +00:00
4 changed files with 26 additions and 6 deletions

View File

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

View File

@@ -1 +1 @@
__version__ = "0.1.45"
__version__ = "0.1.48"

View File

@@ -95,6 +95,7 @@ class Config:
) # "bilisearch:" or "ytsearch:"
ffmpeg_location: str = os.getenv("XIAOMUSIC_FFMPEG_LOCATION", "./ffmpeg/bin")
active_cmd: str = os.getenv("XIAOMUSIC_ACTIVE_CMD", "play,random_play")
exclude_dirs: str = os.getenv("XIAOMUSIC_EXCLUDE_DIRS", "@eaDir")
def __post_init__(self) -> None:
if self.proxy:

View File

@@ -62,6 +62,7 @@ class XiaoMusic:
self.search_prefix = config.search_prefix
self.ffmpeg_location = config.ffmpeg_location
self.active_cmd = config.active_cmd.split(",")
self.exclude_dirs = set(config.exclude_dirs.split(","))
# 下载对象
self.download_proc = None
@@ -347,6 +348,7 @@ class XiaoMusic:
self._all_music = {}
all_music_by_dir = {}
for root, dirs, filenames in os.walk(self.music_path):
dirs[:] = [d for d in dirs if d not in self.exclude_dirs]
self.log.debug("root:%s dirs:%s music_path:%s", root, dirs, self.music_path)
dir_name = os.path.basename(root)
if self.music_path == root:
@@ -523,17 +525,35 @@ class XiaoMusic:
return ("stop", {})
return (None, None)
# 判断是否播放一下私募歌曲
def check_play_next(self):
# 当前没我在播放的歌曲
if self.cur_music == "":
return True
else:
filename = self.get_filename(self.cur_music)
# 当前播放的歌曲不存在了
if len(filename) <= 0:
return True
pass
return False
# 播放歌曲
async def play(self, **kwargs):
self._playing = True
parts = kwargs["arg1"].split("|")
search_key = parts[0]
name = parts[1] if len(parts) > 1 else search_key
if search_key == "" and name == "":
await self.play_next()
return
if name == "":
name = search_key
if search_key == "" and name == "":
if self.check_play_next():
await self.play_next()
return
else:
name = self.cur_music
self.log.debug("play. search_key:%s name:%s", search_key, name)
filename = self.get_filename(name)
@@ -625,7 +645,6 @@ class XiaoMusic:
if self._next_timer:
self._next_timer.cancel()
self.log.info("定时器已取消")
self.cur_music = ""
await self.force_stop_xiaoai()
async def stop_after_minute(self, **kwargs):