1
0
mirror of https://github.com/hanxi/xiaomusic.git synced 2026-05-09 00:34:25 +08:00

feat: 定时任务支持选多个歌曲组成一个歌单播放

This commit is contained in:
涵曦
2026-01-11 20:26:45 +08:00
parent 5cd84af72c
commit 69ccb272af
2 changed files with 16 additions and 2 deletions

View File

@@ -104,6 +104,20 @@ class Crontab:
self.add_job(expression, job)
# 添加播放自定义列表任务
def add_job_play_music_tmp_list(self, expression, xiaomusic, did, arg1, **kwargs):
async def job():
name = arg1 or "crontab_tmp_list"
cron = kwargs["cron"]
music_list = cron["music_list"]
music_name = cron.get("first", "")
ret = xiaomusic.play_list_update_music(name, music_list)
if not ret:
self.log.warning(f"crontb play_list_update_music failed name:{name}")
await xiaomusic.do_play_music_list(did, name, music_name)
self.add_job(expression, job)
# 添加语音播放任务
def add_job_tts(self, expression, xiaomusic, did, arg1, **kwargs):
async def job():
@@ -166,7 +180,7 @@ class Crontab:
jobname = f"add_job_{name}"
func = getattr(self, jobname, None)
if callable(func):
func(expression, xiaomusic, did=did, arg1=arg1)
func(expression, xiaomusic, did=did, arg1=arg1, cron=cron)
self.log.info(
f"crontab add_job_cron ok. did:{did}, name:{name}, arg1:{arg1} expression:{expression}"
)

View File

@@ -764,7 +764,7 @@ class XiaoMusicDevice:
self.device.cur_playlist = list_name
self.update_playlist()
if not music_name:
music_name = self.device.playlist2music.get(list_name)
music_name = self.device.playlist2music.get(list_name, "")
self.log.info(f"开始播放列表{list_name} {music_name}")
await self._play(music_name, exact=True)