From ffd76f5f2ba3d7a5b4457c99a1d6848bdf69bd65 Mon Sep 17 00:00:00 2001 From: real-zony Date: Tue, 12 Apr 2022 10:15:23 +0800 Subject: [PATCH] enhanced: Optimized tag reader workflow. Closes #93 --- .../Infrastructure/Tag/DefaultTagLoader.cs | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/ZonyLrcTools.Cli/Infrastructure/Tag/DefaultTagLoader.cs b/src/ZonyLrcTools.Cli/Infrastructure/Tag/DefaultTagLoader.cs index d522f28..23a56c5 100644 --- a/src/ZonyLrcTools.Cli/Infrastructure/Tag/DefaultTagLoader.cs +++ b/src/ZonyLrcTools.Cli/Infrastructure/Tag/DefaultTagLoader.cs @@ -1,3 +1,4 @@ +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -19,7 +20,7 @@ namespace ZonyLrcTools.Cli.Infrastructure.Tag protected readonly ILogger Logger; protected ToolOptions Options; - + private readonly IEnumerable _sortedTagInfoProviders; public DefaultTagLoader(IEnumerable tagInfoProviders, @@ -39,16 +40,22 @@ namespace ZonyLrcTools.Cli.Infrastructure.Tag { foreach (var provider in _sortedTagInfoProviders) { - var info = await provider.LoadAsync(filePath); - if (info != null) + try { - HandleBlockWord(info); - return info; + var info = await provider.LoadAsync(filePath); + if (info != null) + { + HandleBlockWord(info); + return info; + } + } + catch (Exception) + { + // ignored } } Logger.LogWarning($"{filePath} 没有找到正确的标签信息,请考虑调整正则表达式。"); - return null; } @@ -58,11 +65,11 @@ namespace ZonyLrcTools.Cli.Infrastructure.Tag { throw new ErrorCodeException(ErrorCodes.LoadTagInfoProviderError); } - + return Options.Provider.Tag.Plugin .Where(x => x.Priority != -1) .OrderBy(x => x.Priority) - .Join(TagInfoProviders,x=>x.Name,y=>y.Name,(x,y)=>y); + .Join(TagInfoProviders, x => x.Name, y => y.Name, (x, y) => y); } protected void HandleBlockWord(MusicInfo info)