From 0f846219197672d52b0ac27f6de81e2eda61b804 Mon Sep 17 00:00:00 2001 From: real-zony Date: Mon, 25 Apr 2022 12:16:00 +0800 Subject: [PATCH] fix: Fixed multi-downloader not working problem. --- .../Commands/SubCommand/DownloadCommand.cs | 23 +++++++++++-------- .../Extensions/LoggerExtensions.cs | 6 ++--- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/ZonyLrcTools.Cli/Commands/SubCommand/DownloadCommand.cs b/src/ZonyLrcTools.Cli/Commands/SubCommand/DownloadCommand.cs index 017659c..3784317 100644 --- a/src/ZonyLrcTools.Cli/Commands/SubCommand/DownloadCommand.cs +++ b/src/ZonyLrcTools.Cli/Commands/SubCommand/DownloadCommand.cs @@ -166,10 +166,8 @@ namespace ZonyLrcTools.Cli.Commands.SubCommand private async Task DownloadLyricTaskLogicAsync(IEnumerable downloaderList, MusicInfo info) { - async Task InternalDownloadLogicAsync(ILyricDownloader downloader) + async Task InternalDownloadLogicAsync(ILyricDownloader downloader) { - _logger.LogMusicInfoWithInformation(info); - try { var lyric = await downloader.DownloadAsync(info.Name, info.Artist); @@ -183,7 +181,7 @@ namespace ZonyLrcTools.Cli.Commands.SubCommand if (lyric.IsPruneMusic) { - return true; + info.IsSuccessful = true; } await using var stream = new FileStream(lyricFilePath, FileMode.Create); @@ -195,7 +193,7 @@ namespace ZonyLrcTools.Cli.Commands.SubCommand { if (ex.ErrorCode == ErrorCodes.NoMatchingSong) { - return false; + info.IsSuccessful = false; } _logger.LogWarningInfo(ex); @@ -205,15 +203,20 @@ namespace ZonyLrcTools.Cli.Commands.SubCommand _logger.LogError($"下载歌词文件时发生错误:{ex.Message},歌曲名: {info.Name},歌手: {info.Artist}。"); info.IsSuccessful = false; } - - return true; + finally + { + info.IsSuccessful = true; + } } foreach (var downloader in downloaderList) { - if (await InternalDownloadLogicAsync(downloader)) + await InternalDownloadLogicAsync(downloader); + + if (info.IsSuccessful) { - break; + _logger.LogSuccessful(info); + return; } } } @@ -238,7 +241,7 @@ namespace ZonyLrcTools.Cli.Commands.SubCommand private async Task DownloadAlbumTaskLogicAsync(IAlbumDownloader downloader, MusicInfo info) { - _logger.LogMusicInfoWithInformation(info); + _logger.LogSuccessful(info); try { diff --git a/src/ZonyLrcTools.Cli/Infrastructure/Extensions/LoggerExtensions.cs b/src/ZonyLrcTools.Cli/Infrastructure/Extensions/LoggerExtensions.cs index 4d9b69f..a4aa961 100644 --- a/src/ZonyLrcTools.Cli/Infrastructure/Extensions/LoggerExtensions.cs +++ b/src/ZonyLrcTools.Cli/Infrastructure/Extensions/LoggerExtensions.cs @@ -41,13 +41,13 @@ namespace ZonyLrcTools.Cli.Infrastructure.Extensions } /// - /// 使用 级别打印歌曲信息。 + /// 使用 级别打印歌曲下载成功信息。 /// /// 日志记录器的实例。 /// 需要打印的歌曲信息。 - public static void LogMusicInfoWithInformation(this ILogger logger, MusicInfo musicInfo) + public static void LogSuccessful(this ILogger logger, MusicInfo musicInfo) { - logger.LogInformation($"歌曲名: {musicInfo.Name}, 艺术家: {musicInfo.Artist}, 歌曲路径: {musicInfo.FilePath}"); + logger.LogInformation($"歌曲名: {musicInfo.Name}, 艺术家: {musicInfo.Artist}, 下载成功."); } } } \ No newline at end of file