From aa90e232f7116213f964fdd97b238308ac01a072 Mon Sep 17 00:00:00 2001 From: real-zony Date: Thu, 6 Oct 2022 12:29:56 +0800 Subject: [PATCH] chore: Move the related configuration items to the Common library. --- .../Commands/SubCommand/DownloadCommand.cs | 6 +++--- .../DependencyInject/ServiceCollectionExtensions.cs | 6 +++--- .../Lyric/KuGou/KuGourLyricDownloader.cs | 6 +++--- .../Infrastructure/Lyric/LyricItemCollection.cs | 1 - .../Lyric/LyricItemCollectionFactory.cs | 6 +++--- .../Lyric/NetEase/NetEaseLyricDownloader.cs | 6 +++--- .../Infrastructure/Tag/BlockWordDictionary.cs | 6 +++--- .../Infrastructure/Tag/DefaultTagLoader.cs | 6 +++--- .../Infrastructure/Tag/FileNameTagInfoProvider.cs | 6 +++--- src/ZonyLrcTools.Cli/ZonyLrcTools.Cli.csproj | 4 ++++ .../Configuration/GlobalOptions.cs} | 11 ++--------- .../Configuration}/NetworkOptions.cs | 2 +- .../Infrastructure/Lyric/LyricCollectionTests.cs | 1 - .../Lyric/NetEaseLyricDownloaderTests.cs | 4 ++-- .../Infrastructure/Network/WarpClientTests.cs | 4 ++-- 15 files changed, 35 insertions(+), 40 deletions(-) rename src/{ZonyLrcTools.Cli/Config/ToolOptions.cs => ZonyLrcTools.Common/Configuration/GlobalOptions.cs} (61%) rename src/{ZonyLrcTools.Cli/Infrastructure/Network => ZonyLrcTools.Common/Configuration}/NetworkOptions.cs (91%) diff --git a/src/ZonyLrcTools.Cli/Commands/SubCommand/DownloadCommand.cs b/src/ZonyLrcTools.Cli/Commands/SubCommand/DownloadCommand.cs index d97f17c..e8500a6 100644 --- a/src/ZonyLrcTools.Cli/Commands/SubCommand/DownloadCommand.cs +++ b/src/ZonyLrcTools.Cli/Commands/SubCommand/DownloadCommand.cs @@ -8,7 +8,6 @@ using System.Threading.Tasks; using McMaster.Extensions.CommandLineUtils; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using ZonyLrcTools.Cli.Config; using ZonyLrcTools.Cli.Infrastructure; using ZonyLrcTools.Cli.Infrastructure.Album; using ZonyLrcTools.Cli.Infrastructure.Exceptions; @@ -17,6 +16,7 @@ using ZonyLrcTools.Cli.Infrastructure.IO; using ZonyLrcTools.Cli.Infrastructure.Lyric; using ZonyLrcTools.Cli.Infrastructure.Tag; using ZonyLrcTools.Cli.Infrastructure.Threading; +using ZonyLrcTools.Common.Configuration; using File = System.IO.File; namespace ZonyLrcTools.Cli.Commands.SubCommand @@ -30,11 +30,11 @@ namespace ZonyLrcTools.Cli.Commands.SubCommand private readonly IEnumerable _lyricDownloaderList; private readonly IEnumerable _albumDownloaderList; - private readonly ToolOptions _options; + private readonly GlobalOptions _options; public DownloadCommand(ILogger logger, IFileScanner fileScanner, - IOptions options, + IOptions options, ITagLoader tagLoader, IEnumerable lyricDownloaderList, IEnumerable albumDownloaderList) diff --git a/src/ZonyLrcTools.Cli/Infrastructure/DependencyInject/ServiceCollectionExtensions.cs b/src/ZonyLrcTools.Cli/Infrastructure/DependencyInject/ServiceCollectionExtensions.cs index b066df5..732bb0b 100644 --- a/src/ZonyLrcTools.Cli/Infrastructure/DependencyInject/ServiceCollectionExtensions.cs +++ b/src/ZonyLrcTools.Cli/Infrastructure/DependencyInject/ServiceCollectionExtensions.cs @@ -4,8 +4,8 @@ using System.Net.Http; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; -using ZonyLrcTools.Cli.Config; using ZonyLrcTools.Cli.Infrastructure.Network; +using ZonyLrcTools.Common.Configuration; namespace ZonyLrcTools.Cli.Infrastructure.DependencyInject { @@ -27,7 +27,7 @@ namespace ZonyLrcTools.Cli.Infrastructure.DependencyInject services.AddHttpClient(DefaultWarpHttpClient.HttpClientNameConstant) .ConfigurePrimaryHttpMessageHandler(provider => { - var option = provider.GetRequiredService>().Value; + var option = provider.GetRequiredService>().Value; return new HttpClientHandler { @@ -49,7 +49,7 @@ namespace ZonyLrcTools.Cli.Infrastructure.DependencyInject .AddYamlFile("config.yaml") .Build(); - services.Configure(configuration.GetSection("globalOption")); + services.Configure(configuration.GetSection("globalOption")); return services; } diff --git a/src/ZonyLrcTools.Cli/Infrastructure/Lyric/KuGou/KuGourLyricDownloader.cs b/src/ZonyLrcTools.Cli/Infrastructure/Lyric/KuGou/KuGourLyricDownloader.cs index f17856a..df5bbc1 100644 --- a/src/ZonyLrcTools.Cli/Infrastructure/Lyric/KuGou/KuGourLyricDownloader.cs +++ b/src/ZonyLrcTools.Cli/Infrastructure/Lyric/KuGou/KuGourLyricDownloader.cs @@ -3,10 +3,10 @@ using System.Text; using System.Threading.Tasks; using Microsoft.Extensions.Options; using Newtonsoft.Json.Linq; -using ZonyLrcTools.Cli.Config; using ZonyLrcTools.Cli.Infrastructure.Exceptions; using ZonyLrcTools.Cli.Infrastructure.Lyric.KuGou.JsonModel; using ZonyLrcTools.Cli.Infrastructure.Network; +using ZonyLrcTools.Common.Configuration; namespace ZonyLrcTools.Cli.Infrastructure.Lyric.KuGou { @@ -16,7 +16,7 @@ namespace ZonyLrcTools.Cli.Infrastructure.Lyric.KuGou private readonly IWarpHttpClient _warpHttpClient; private readonly ILyricItemCollectionFactory _lyricItemCollectionFactory; - private readonly ToolOptions _options; + private readonly GlobalOptions _options; private const string KuGouSearchMusicUrl = @"https://songsearch.kugou.com/song_search_v2"; private const string KuGouGetLyricAccessKeyUrl = @"http://lyrics.kugou.com/search"; @@ -24,7 +24,7 @@ namespace ZonyLrcTools.Cli.Infrastructure.Lyric.KuGou public KuGourLyricDownloader(IWarpHttpClient warpHttpClient, ILyricItemCollectionFactory lyricItemCollectionFactory, - IOptions options) + IOptions options) { _warpHttpClient = warpHttpClient; _lyricItemCollectionFactory = lyricItemCollectionFactory; diff --git a/src/ZonyLrcTools.Cli/Infrastructure/Lyric/LyricItemCollection.cs b/src/ZonyLrcTools.Cli/Infrastructure/Lyric/LyricItemCollection.cs index 2bc1cfb..f326f97 100644 --- a/src/ZonyLrcTools.Cli/Infrastructure/Lyric/LyricItemCollection.cs +++ b/src/ZonyLrcTools.Cli/Infrastructure/Lyric/LyricItemCollection.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; -using ZonyLrcTools.Cli.Config; using ZonyLrcTools.Cli.Infrastructure.Extensions; using ZonyLrcTools.Common.Configuration; diff --git a/src/ZonyLrcTools.Cli/Infrastructure/Lyric/LyricItemCollectionFactory.cs b/src/ZonyLrcTools.Cli/Infrastructure/Lyric/LyricItemCollectionFactory.cs index 259a01e..af6cc30 100644 --- a/src/ZonyLrcTools.Cli/Infrastructure/Lyric/LyricItemCollectionFactory.cs +++ b/src/ZonyLrcTools.Cli/Infrastructure/Lyric/LyricItemCollectionFactory.cs @@ -1,7 +1,7 @@ using System.Text.RegularExpressions; using Microsoft.Extensions.Options; -using ZonyLrcTools.Cli.Config; using ZonyLrcTools.Cli.Infrastructure.DependencyInject; +using ZonyLrcTools.Common.Configuration; namespace ZonyLrcTools.Cli.Infrastructure.Lyric { @@ -10,9 +10,9 @@ namespace ZonyLrcTools.Cli.Infrastructure.Lyric /// public class LyricItemCollectionFactory : ILyricItemCollectionFactory, ITransientDependency { - private readonly ToolOptions _options; + private readonly GlobalOptions _options; - public LyricItemCollectionFactory(IOptions options) + public LyricItemCollectionFactory(IOptions options) { _options = options.Value; } diff --git a/src/ZonyLrcTools.Cli/Infrastructure/Lyric/NetEase/NetEaseLyricDownloader.cs b/src/ZonyLrcTools.Cli/Infrastructure/Lyric/NetEase/NetEaseLyricDownloader.cs index ab9e14d..e4140f2 100644 --- a/src/ZonyLrcTools.Cli/Infrastructure/Lyric/NetEase/NetEaseLyricDownloader.cs +++ b/src/ZonyLrcTools.Cli/Infrastructure/Lyric/NetEase/NetEaseLyricDownloader.cs @@ -4,10 +4,10 @@ using System.Text; using System.Threading.Tasks; using Microsoft.Extensions.Options; using Newtonsoft.Json; -using ZonyLrcTools.Cli.Config; using ZonyLrcTools.Cli.Infrastructure.Exceptions; using ZonyLrcTools.Cli.Infrastructure.Lyric.NetEase.JsonModel; using ZonyLrcTools.Cli.Infrastructure.Network; +using ZonyLrcTools.Common.Configuration; namespace ZonyLrcTools.Cli.Infrastructure.Lyric.NetEase { @@ -17,7 +17,7 @@ namespace ZonyLrcTools.Cli.Infrastructure.Lyric.NetEase private readonly IWarpHttpClient _warpHttpClient; private readonly ILyricItemCollectionFactory _lyricItemCollectionFactory; - private readonly ToolOptions _options; + private readonly GlobalOptions _options; private const string NetEaseSearchMusicUrl = @"https://music.163.com/api/search/get/web"; private const string NetEaseGetLyricUrl = @"https://music.163.com/api/song/lyric"; @@ -27,7 +27,7 @@ namespace ZonyLrcTools.Cli.Infrastructure.Lyric.NetEase public NetEaseLyricDownloader(IWarpHttpClient warpHttpClient, ILyricItemCollectionFactory lyricItemCollectionFactory, - IOptions options) + IOptions options) { _warpHttpClient = warpHttpClient; _lyricItemCollectionFactory = lyricItemCollectionFactory; diff --git a/src/ZonyLrcTools.Cli/Infrastructure/Tag/BlockWordDictionary.cs b/src/ZonyLrcTools.Cli/Infrastructure/Tag/BlockWordDictionary.cs index af56d48..c30e2bc 100644 --- a/src/ZonyLrcTools.Cli/Infrastructure/Tag/BlockWordDictionary.cs +++ b/src/ZonyLrcTools.Cli/Infrastructure/Tag/BlockWordDictionary.cs @@ -3,19 +3,19 @@ using System.Collections.Generic; using System.IO; using Microsoft.Extensions.Options; using Newtonsoft.Json; -using ZonyLrcTools.Cli.Config; using ZonyLrcTools.Cli.Infrastructure.DependencyInject; +using ZonyLrcTools.Common.Configuration; namespace ZonyLrcTools.Cli.Infrastructure.Tag { /// public class BlockWordDictionary : IBlockWordDictionary, ISingletonDependency { - private readonly ToolOptions _options; + private readonly GlobalOptions _options; private readonly Lazy> _wordsDictionary; - public BlockWordDictionary(IOptions options) + public BlockWordDictionary(IOptions options) { _options = options.Value; diff --git a/src/ZonyLrcTools.Cli/Infrastructure/Tag/DefaultTagLoader.cs b/src/ZonyLrcTools.Cli/Infrastructure/Tag/DefaultTagLoader.cs index 6afd9ce..dd88377 100644 --- a/src/ZonyLrcTools.Cli/Infrastructure/Tag/DefaultTagLoader.cs +++ b/src/ZonyLrcTools.Cli/Infrastructure/Tag/DefaultTagLoader.cs @@ -4,9 +4,9 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; -using ZonyLrcTools.Cli.Config; using ZonyLrcTools.Cli.Infrastructure.DependencyInject; using ZonyLrcTools.Cli.Infrastructure.Exceptions; +using ZonyLrcTools.Common.Configuration; namespace ZonyLrcTools.Cli.Infrastructure.Tag { @@ -19,13 +19,13 @@ namespace ZonyLrcTools.Cli.Infrastructure.Tag protected readonly IBlockWordDictionary BlockWordDictionary; protected readonly ILogger Logger; - protected ToolOptions Options; + protected GlobalOptions Options; private readonly IEnumerable _sortedTagInfoProviders; public DefaultTagLoader(IEnumerable tagInfoProviders, IBlockWordDictionary blockWordDictionary, - IOptions options, + IOptions options, ILogger logger) { TagInfoProviders = tagInfoProviders; diff --git a/src/ZonyLrcTools.Cli/Infrastructure/Tag/FileNameTagInfoProvider.cs b/src/ZonyLrcTools.Cli/Infrastructure/Tag/FileNameTagInfoProvider.cs index f73ce1c..7856ccf 100644 --- a/src/ZonyLrcTools.Cli/Infrastructure/Tag/FileNameTagInfoProvider.cs +++ b/src/ZonyLrcTools.Cli/Infrastructure/Tag/FileNameTagInfoProvider.cs @@ -3,8 +3,8 @@ using System.Linq; using System.Text.RegularExpressions; using System.Threading.Tasks; using Microsoft.Extensions.Options; -using ZonyLrcTools.Cli.Config; using ZonyLrcTools.Cli.Infrastructure.DependencyInject; +using ZonyLrcTools.Common.Configuration; namespace ZonyLrcTools.Cli.Infrastructure.Tag { @@ -17,9 +17,9 @@ namespace ZonyLrcTools.Cli.Infrastructure.Tag public const string ConstantName = "FileName"; public const string RegularExpressionsOption = "regularExpressions"; - private readonly ToolOptions _options; + private readonly GlobalOptions _options; - public FileNameTagInfoProvider(IOptions options) + public FileNameTagInfoProvider(IOptions options) { _options = options.Value; } diff --git a/src/ZonyLrcTools.Cli/ZonyLrcTools.Cli.csproj b/src/ZonyLrcTools.Cli/ZonyLrcTools.Cli.csproj index 9069f1f..9bf497b 100644 --- a/src/ZonyLrcTools.Cli/ZonyLrcTools.Cli.csproj +++ b/src/ZonyLrcTools.Cli/ZonyLrcTools.Cli.csproj @@ -47,4 +47,8 @@ + + + + diff --git a/src/ZonyLrcTools.Cli/Config/ToolOptions.cs b/src/ZonyLrcTools.Common/Configuration/GlobalOptions.cs similarity index 61% rename from src/ZonyLrcTools.Cli/Config/ToolOptions.cs rename to src/ZonyLrcTools.Common/Configuration/GlobalOptions.cs index c07c64f..5ac78d0 100644 --- a/src/ZonyLrcTools.Cli/Config/ToolOptions.cs +++ b/src/ZonyLrcTools.Common/Configuration/GlobalOptions.cs @@ -1,13 +1,6 @@ -using System.Collections.Generic; -using YamlDotNet.Serialization; -using ZonyLrcTools.Cli.Infrastructure.Lyric; -using ZonyLrcTools.Cli.Infrastructure.Network; -using ZonyLrcTools.Cli.Infrastructure.Tag; -using ZonyLrcTools.Common.Configuration; - -namespace ZonyLrcTools.Cli.Config +namespace ZonyLrcTools.Common.Configuration { - public class ToolOptions + public class GlobalOptions { /// /// 支持的音乐文件后缀集合。 diff --git a/src/ZonyLrcTools.Cli/Infrastructure/Network/NetworkOptions.cs b/src/ZonyLrcTools.Common/Configuration/NetworkOptions.cs similarity index 91% rename from src/ZonyLrcTools.Cli/Infrastructure/Network/NetworkOptions.cs rename to src/ZonyLrcTools.Common/Configuration/NetworkOptions.cs index af6ec83..1777870 100644 --- a/src/ZonyLrcTools.Cli/Infrastructure/Network/NetworkOptions.cs +++ b/src/ZonyLrcTools.Common/Configuration/NetworkOptions.cs @@ -1,4 +1,4 @@ -namespace ZonyLrcTools.Cli.Infrastructure.Network +namespace ZonyLrcTools.Common.Configuration { /// /// 工具网络相关的设定。 diff --git a/tests/ZonyLrcTools.Tests/Infrastructure/Lyric/LyricCollectionTests.cs b/tests/ZonyLrcTools.Tests/Infrastructure/Lyric/LyricCollectionTests.cs index 4a28794..470403b 100644 --- a/tests/ZonyLrcTools.Tests/Infrastructure/Lyric/LyricCollectionTests.cs +++ b/tests/ZonyLrcTools.Tests/Infrastructure/Lyric/LyricCollectionTests.cs @@ -1,6 +1,5 @@ using Shouldly; using Xunit; -using ZonyLrcTools.Cli.Config; using ZonyLrcTools.Cli.Infrastructure.Lyric; using ZonyLrcTools.Common.Configuration; using ZonyLrcTools.Common.Lyrics; diff --git a/tests/ZonyLrcTools.Tests/Infrastructure/Lyric/NetEaseLyricDownloaderTests.cs b/tests/ZonyLrcTools.Tests/Infrastructure/Lyric/NetEaseLyricDownloaderTests.cs index c5cab07..01c58a6 100644 --- a/tests/ZonyLrcTools.Tests/Infrastructure/Lyric/NetEaseLyricDownloaderTests.cs +++ b/tests/ZonyLrcTools.Tests/Infrastructure/Lyric/NetEaseLyricDownloaderTests.cs @@ -5,8 +5,8 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using Shouldly; using Xunit; -using ZonyLrcTools.Cli.Config; using ZonyLrcTools.Cli.Infrastructure.Lyric; +using ZonyLrcTools.Common.Configuration; namespace ZonyLrcTools.Tests.Infrastructure.Lyric { @@ -91,7 +91,7 @@ namespace ZonyLrcTools.Tests.Infrastructure.Lyric [Fact] public async Task DownloadAsync_Issue114_Test() { - var options = ServiceProvider.GetRequiredService>(); + var options = ServiceProvider.GetRequiredService>(); options.Value.Provider.Lyric.Config.IsOnlyOutputTranslation = true; var lyric = await _lyricDownloader.DownloadAsync("Bones", "Image Dragons"); diff --git a/tests/ZonyLrcTools.Tests/Infrastructure/Network/WarpClientTests.cs b/tests/ZonyLrcTools.Tests/Infrastructure/Network/WarpClientTests.cs index 6dcd8db..fdc86c7 100644 --- a/tests/ZonyLrcTools.Tests/Infrastructure/Network/WarpClientTests.cs +++ b/tests/ZonyLrcTools.Tests/Infrastructure/Network/WarpClientTests.cs @@ -3,8 +3,8 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using Shouldly; using Xunit; -using ZonyLrcTools.Cli.Config; using ZonyLrcTools.Cli.Infrastructure.Network; +using ZonyLrcTools.Common.Configuration; namespace ZonyLrcTools.Tests.Infrastructure.Network { @@ -33,7 +33,7 @@ namespace ZonyLrcTools.Tests.Infrastructure.Network [Fact] public async Task GetAsyncWithProxy_Test() { - var option = ServiceProvider.GetRequiredService>(); + var option = ServiceProvider.GetRequiredService>(); option.Value.NetworkOptions.Ip = "127.0.0.1"; option.Value.NetworkOptions.Port = 4780;