Skip to content

Commit 69ccb27

Browse files
committed
feat: 定时任务支持选多个歌曲组成一个歌单播放
1 parent 5cd84af commit 69ccb27

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

xiaomusic/crontab.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,20 @@ async def job():
104104

105105
self.add_job(expression, job)
106106

107+
# 添加播放自定义列表任务
108+
def add_job_play_music_tmp_list(self, expression, xiaomusic, did, arg1, **kwargs):
109+
async def job():
110+
name = arg1 or "crontab_tmp_list"
111+
cron = kwargs["cron"]
112+
music_list = cron["music_list"]
113+
music_name = cron.get("first", "")
114+
ret = xiaomusic.play_list_update_music(name, music_list)
115+
if not ret:
116+
self.log.warning(f"crontb play_list_update_music failed name:{name}")
117+
await xiaomusic.do_play_music_list(did, name, music_name)
118+
119+
self.add_job(expression, job)
120+
107121
# 添加语音播放任务
108122
def add_job_tts(self, expression, xiaomusic, did, arg1, **kwargs):
109123
async def job():
@@ -166,7 +180,7 @@ def add_job_cron(self, xiaomusic, cron):
166180
jobname = f"add_job_{name}"
167181
func = getattr(self, jobname, None)
168182
if callable(func):
169-
func(expression, xiaomusic, did=did, arg1=arg1)
183+
func(expression, xiaomusic, did=did, arg1=arg1, cron=cron)
170184
self.log.info(
171185
f"crontab add_job_cron ok. did:{did}, name:{name}, arg1:{arg1} expression:{expression}"
172186
)

xiaomusic/device_player.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -764,7 +764,7 @@ async def play_music_list(self, list_name, music_name):
764764
self.device.cur_playlist = list_name
765765
self.update_playlist()
766766
if not music_name:
767-
music_name = self.device.playlist2music.get(list_name)
767+
music_name = self.device.playlist2music.get(list_name, "")
768768
self.log.info(f"开始播放列表{list_name} {music_name}")
769769
await self._play(music_name, exact=True)
770770

0 commit comments

Comments
 (0)