diff --git a/xiaomusic/crontab.py b/xiaomusic/crontab.py index 0edbdc4..f1dbaab 100644 --- a/xiaomusic/crontab.py +++ b/xiaomusic/crontab.py @@ -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}" ) diff --git a/xiaomusic/device_player.py b/xiaomusic/device_player.py index 2e4c100..f59fb12 100644 --- a/xiaomusic/device_player.py +++ b/xiaomusic/device_player.py @@ -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)