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())