From 9f6cc93fdf72f39e8ab27b64e59c1f0d7ac4ebfd Mon Sep 17 00:00:00 2001 From: fragrans Date: Sun, 18 Jan 2026 10:05:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A8=A1=E7=B3=8A=E6=90=9C=E7=B4=A2=E9=9F=B3?= =?UTF-8?q?=E4=B9=90=E5=90=8D=E7=A7=B0=E5=B0=BD=E6=97=A9=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=20(#707)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- xiaomusic/music_library.py | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/xiaomusic/music_library.py b/xiaomusic/music_library.py index a7d2332..8619ab3 100644 --- a/xiaomusic/music_library.py +++ b/xiaomusic/music_library.py @@ -502,27 +502,25 @@ class MusicLibrary: n=n, extra_search_index=self._extra_index_search, ) - - if real_names: - if n > 1 and name not in real_names: - # 模糊匹配模式,扩大范围再找,最后保留随机 n 个 - real_names = find_best_match( - name, - all_music_list, - cutoff=self.config.fuzzy_match_cutoff, - n=n * 2, - extra_search_index=self._extra_index_search, - ) - random.shuffle(real_names) - real_names = real_names[:n] - elif name in real_names: - # 可以精确匹配,限制只返回一个(保证网页端播放可用) - real_names = [name] - self.log.info(f"根据【{name}】找到歌曲【{real_names}】") - return real_names - + if not real_names: + self.log.info(f"没找到歌曲【{name}】") + return [] + self.log.info(f"根据【{name}】找到歌曲【{real_names}】") + if name in real_names: + return [name] + + # 音乐不在查找结果同时n大于1, 模糊匹配模式,扩大范围再找,最后保留随机 n 个 + if n > 1: + real_names = find_best_match( + name, + all_music_list, + cutoff=self.config.fuzzy_match_cutoff, + n=n * 2, + extra_search_index=self._extra_index_search, + ) + random.shuffle(real_names) self.log.info(f"没找到歌曲【{name}】") - return [] + return real_names[:n] def find_real_music_list_name(self, list_name): """模糊搜索播放列表名称