diff --git a/xiaomusic/config.py b/xiaomusic/config.py index c83ded2..50d1176 100644 --- a/xiaomusic/config.py +++ b/xiaomusic/config.py @@ -186,6 +186,9 @@ class Config: play_type_seq_tts_msg: str = os.getenv( "XIAOMUSIC_PLAY_TYPE_SEQ_TTS_MSG", "已经设置为顺序播放" ) + recently_added_playlist_len: int = int( + os.getenv("XIAOMUSIC_RECENTLY_ADDED_PLAYLIST_LEN", "50") + ) def append_keyword(self, keys, action): for key in keys.split(","): diff --git a/xiaomusic/static/default/setting.html b/xiaomusic/static/default/setting.html index b25c97e..209cefa 100644 --- a/xiaomusic/static/default/setting.html +++ b/xiaomusic/static/default/setting.html @@ -204,6 +204,9 @@ var vConsole = new window.VConsole(); + + + diff --git a/xiaomusic/xiaomusic.py b/xiaomusic/xiaomusic.py index 0baba59..48f46fe 100644 --- a/xiaomusic/xiaomusic.py +++ b/xiaomusic/xiaomusic.py @@ -641,13 +641,15 @@ class XiaoMusic: "全部": [], # 包含所有歌曲和所有电台 "下载": [], # 下载目录下的 "其他": [], # 主目录下的 + "最近新增": [], # 按文件时间排序 } ) - # 全部,所有,自定义歌单(收藏) - self.music_list["全部"] = list(self.all_music.keys()) - self.music_list["所有歌曲"] = [ - name for name in self.all_music.keys() if name not in self._all_radio - ] + # 最近新增(不包含网络歌单) + self.music_list["最近新增"] = sorted( + self.all_music.keys(), + key=lambda x: os.path.getctime(self.all_music[x]), + reverse=True, + )[: self.config.recently_added_playlist_len] # 网络歌单 try: @@ -656,6 +658,12 @@ class XiaoMusic: except Exception as e: self.log.exception(f"Execption {e}") + # 全部,所有,自定义歌单(收藏) + self.music_list["全部"] = list(self.all_music.keys()) + self.music_list["所有歌曲"] = [ + name for name in self.all_music.keys() if name not in self._all_radio + ] + # 文件夹歌单 for dir_name, musics in all_music_by_dir.items(): self.music_list[dir_name] = list(musics.keys())