feat: 新增最近新增歌单 close #273

This commit is contained in:
涵曦 2024-12-03 21:44:48 +08:00
parent 8c92afd09b
commit 733c44d12f
3 changed files with 19 additions and 5 deletions

View File

@ -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(","):

View File

@ -204,6 +204,9 @@ var vConsole = new window.VConsole();
<option value="false" selected>false</option>
</select>
<label for="recently_added_playlist_len">最近新增的歌曲数量:</label>
<input id="recently_added_playlist_len" type="number" value="50" />
<label for="music_list_url">歌单地址:</label>
<input id="music_list_url" type="text" value="https://gist.githubusercontent.com/hanxi/dda82d964a28f8110f8fba81c3ff8314/raw/example.json" />

View File

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