diff --git a/src/ZonyLrcTools.Cli/Program.cs b/src/ZonyLrcTools.Cli/Program.cs index 199e4ed..f040d65 100644 --- a/src/ZonyLrcTools.Cli/Program.cs +++ b/src/ZonyLrcTools.Cli/Program.cs @@ -81,8 +81,7 @@ namespace ZonyLrcTools.Cli .ConfigureLogging(l => l.AddSerilog()) .ConfigureHostConfiguration(builder => { - builder - .SetBasePath(AppDomain.CurrentDomain.BaseDirectory) + builder.SetBasePath(AppDomain.CurrentDomain.BaseDirectory) .AddYamlFile("config.yaml"); }) .ConfigureServices((_, services) => diff --git a/src/ZonyLrcTools.Cli/config.yaml b/src/ZonyLrcTools.Cli/config.yaml index 24553bb..c723626 100644 --- a/src/ZonyLrcTools.Cli/config.yaml +++ b/src/ZonyLrcTools.Cli/config.yaml @@ -1,61 +1,61 @@ -globalOption: - # 允许扫描的歌曲文件后缀名。 - supportFileExtensions: - - '*.mp3' - - '*.flac' - - '*.wav' - - '*.m4a' - - '*.ogg' - - '*.opus' - # 网络代理服务设置,仅支持 HTTP 代理。 - networkOptions: - isEnable: false # 是否启用代理。 - ip: 127.0.0.1 # 代理服务 IP 地址。 - port: 4780 # 代理服务端口号。 - updateUrl: https://api.myzony.com/lrc-tools/update # 更新检查地址。 - - # 下载器的相关参数配置。 - provider: - # 标签扫描器的相关参数配置。 - tag: - # 支持的标签扫描器。 - plugin: - - name: Taglib # 基于 Taglib 库的标签扫描器。 - priority: 1 # 优先级,升序排列。 - - name: FileName # 基于文件名的标签扫描器。 - priority: 2 - # 基于文件名扫描器的扩展参数。 - extensions: - # 正则表达式,用于匹配文件名中的作者信息和歌曲信息,可根据 - # 自己的需求进行调整。 - regularExpressions: "(?'artist'.+)\\s-\\s(?'name'.+)" - # 歌曲标签屏蔽字典替换功能。 - blockWord: - isEnable: false # 是否启用屏蔽字典。 - filePath: 'BlockWords.json' # 屏蔽字典的路径。 - # 歌词下载器的相关参数配置。 - lyric: - # 支持的歌词下载器。 - plugin: - - name: NetEase # 基于网易云音乐的歌词下载器。 - priority: 1 # 优先级,升序排列,改为 -1 时禁用。 - depth: 10 # 搜索深度,值越大搜索结果越多,但搜索时间越长。 - additional: - isEnableRomanOutput: false # 是否启用罗马音输出,本参数仅当对应歌曲有罗马音歌词时有效。 - - name: QQ # 基于 QQ 音乐的歌词下载器。 - priority: 2 - # depth: 10 # 暂时不支持。 - - name: KuGou # 基于酷狗音乐的歌词下载器。 - priority: 3 - depth: 10 - - name: KuWo # 基于酷我音乐的歌词下载器。 - priority: 4 - depth: 10 - # 歌词下载的一些共有配置参数。 - config: - isOneLine: true # 双语歌词是否合并为一行展示。 - lineBreak: "\n" # 换行符的类型,记得使用双引号指定。 - isEnableTranslation: true # 是否启用翻译歌词。 - isOnlyOutputTranslation: false # 是否只输出翻译歌词。 - isSkipExistLyricFiles: false # 如果歌词文件已经存在,是否跳过这些文件。 - fileEncoding: 'utf-8' # 歌词文件的编码格式。 \ No newline at end of file +# 允许扫描的歌曲文件后缀名。 +supportFileExtensions: + - '*.mp3' + - '*.flac' + - '*.wav' + - '*.m4a' + - '*.ogg' + - '*.opus' + +# 网络代理服务设置,仅支持 HTTP 代理。 +networkOptions: + isEnable: false # 是否启用代理。 + ip: 127.0.0.1 # 代理服务 IP 地址。 + port: 4780 # 代理服务端口号。 + updateUrl: https://api.myzony.com/lrc-tools/update # 更新检查地址。 + +# 下载器的相关参数配置。 +provider: + # 标签扫描器的相关参数配置。 + tag: + # 支持的标签扫描器。 + plugin: + - name: Taglib # 基于 Taglib 库的标签扫描器。 + priority: 1 # 优先级,升序排列。 + - name: FileName # 基于文件名的标签扫描器。 + priority: 2 + # 基于文件名扫描器的扩展参数。 + extensions: + # 正则表达式,用于匹配文件名中的作者信息和歌曲信息,可根据 + # 自己的需求进行调整。 + regularExpressions: "(?'artist'.+)\\s-\\s(?'name'.+)" + # 歌曲标签屏蔽字典替换功能。 + blockWord: + isEnable: false # 是否启用屏蔽字典。 + filePath: 'BlockWords.json' # 屏蔽字典的路径。 + # 歌词下载器的相关参数配置。 + lyric: + # 支持的歌词下载器。 + plugin: + - name: NetEase # 基于网易云音乐的歌词下载器。 + priority: 1 # 优先级,升序排列,改为 -1 时禁用。 + depth: 10 # 搜索深度,值越大搜索结果越多,但搜索时间越长。 + additional: + isEnableRomanOutput: false # 是否启用罗马音输出,本参数仅当对应歌曲有罗马音歌词时有效。 + - name: QQ # 基于 QQ 音乐的歌词下载器。 + priority: 2 + # depth: 10 # 暂时不支持。 + - name: KuGou # 基于酷狗音乐的歌词下载器。 + priority: 3 + depth: 10 + - name: KuWo # 基于酷我音乐的歌词下载器。 + priority: 4 + depth: 10 + # 歌词下载的一些共有配置参数。 + config: + isOneLine: true # 双语歌词是否合并为一行展示。 + lineBreak: "\n" # 换行符的类型,记得使用双引号指定。 + isEnableTranslation: true # 是否启用翻译歌词。 + isOnlyOutputTranslation: false # 是否只输出翻译歌词。 + isSkipExistLyricFiles: false # 如果歌词文件已经存在,是否跳过这些文件。 + fileEncoding: 'utf-8' # 歌词文件的编码格式。 \ No newline at end of file diff --git a/src/ZonyLrcTools.Common/Configuration/LyricsProviderOptions.cs b/src/ZonyLrcTools.Common/Configuration/LyricsProviderOptions.cs index 0135212..edb51e2 100644 --- a/src/ZonyLrcTools.Common/Configuration/LyricsProviderOptions.cs +++ b/src/ZonyLrcTools.Common/Configuration/LyricsProviderOptions.cs @@ -16,5 +16,10 @@ /// 搜索深度,值越大搜索结果越多,但搜索时间越长。 /// public int Depth { get; set; } + + /// + /// 歌词下载器的扩展属性。 + /// + public Dictionary? Additional { get; set; } } } \ No newline at end of file diff --git a/src/ZonyLrcTools.Common/Configuration/NetworkOptions.cs b/src/ZonyLrcTools.Common/Configuration/NetworkOptions.cs index d3364d8..b26ef5c 100644 --- a/src/ZonyLrcTools.Common/Configuration/NetworkOptions.cs +++ b/src/ZonyLrcTools.Common/Configuration/NetworkOptions.cs @@ -19,5 +19,10 @@ namespace ZonyLrcTools.Common.Configuration /// 代理服务器的 端口。 /// public int Port { get; set; } + + /// + /// 更新检查的 Url。 + /// + public string UpdateUrl { get; set; } = default!; } } \ No newline at end of file diff --git a/src/ZonyLrcTools.Common/Infrastructure/DependencyInject/ServiceCollectionExtensions.cs b/src/ZonyLrcTools.Common/Infrastructure/DependencyInject/ServiceCollectionExtensions.cs index 4f119ed..2e25a2e 100644 --- a/src/ZonyLrcTools.Common/Infrastructure/DependencyInject/ServiceCollectionExtensions.cs +++ b/src/ZonyLrcTools.Common/Infrastructure/DependencyInject/ServiceCollectionExtensions.cs @@ -47,7 +47,7 @@ namespace ZonyLrcTools.Common.Infrastructure.DependencyInject .AddYamlFile("config.yaml") .Build(); - services.Configure(configuration.GetSection("globalOption")); + services.Configure(configuration); return services; } diff --git a/src/ZonyLrcTools.Desktop/config.yaml b/src/ZonyLrcTools.Desktop/config.yaml index 24553bb..c723626 100644 --- a/src/ZonyLrcTools.Desktop/config.yaml +++ b/src/ZonyLrcTools.Desktop/config.yaml @@ -1,61 +1,61 @@ -globalOption: - # 允许扫描的歌曲文件后缀名。 - supportFileExtensions: - - '*.mp3' - - '*.flac' - - '*.wav' - - '*.m4a' - - '*.ogg' - - '*.opus' - # 网络代理服务设置,仅支持 HTTP 代理。 - networkOptions: - isEnable: false # 是否启用代理。 - ip: 127.0.0.1 # 代理服务 IP 地址。 - port: 4780 # 代理服务端口号。 - updateUrl: https://api.myzony.com/lrc-tools/update # 更新检查地址。 - - # 下载器的相关参数配置。 - provider: - # 标签扫描器的相关参数配置。 - tag: - # 支持的标签扫描器。 - plugin: - - name: Taglib # 基于 Taglib 库的标签扫描器。 - priority: 1 # 优先级,升序排列。 - - name: FileName # 基于文件名的标签扫描器。 - priority: 2 - # 基于文件名扫描器的扩展参数。 - extensions: - # 正则表达式,用于匹配文件名中的作者信息和歌曲信息,可根据 - # 自己的需求进行调整。 - regularExpressions: "(?'artist'.+)\\s-\\s(?'name'.+)" - # 歌曲标签屏蔽字典替换功能。 - blockWord: - isEnable: false # 是否启用屏蔽字典。 - filePath: 'BlockWords.json' # 屏蔽字典的路径。 - # 歌词下载器的相关参数配置。 - lyric: - # 支持的歌词下载器。 - plugin: - - name: NetEase # 基于网易云音乐的歌词下载器。 - priority: 1 # 优先级,升序排列,改为 -1 时禁用。 - depth: 10 # 搜索深度,值越大搜索结果越多,但搜索时间越长。 - additional: - isEnableRomanOutput: false # 是否启用罗马音输出,本参数仅当对应歌曲有罗马音歌词时有效。 - - name: QQ # 基于 QQ 音乐的歌词下载器。 - priority: 2 - # depth: 10 # 暂时不支持。 - - name: KuGou # 基于酷狗音乐的歌词下载器。 - priority: 3 - depth: 10 - - name: KuWo # 基于酷我音乐的歌词下载器。 - priority: 4 - depth: 10 - # 歌词下载的一些共有配置参数。 - config: - isOneLine: true # 双语歌词是否合并为一行展示。 - lineBreak: "\n" # 换行符的类型,记得使用双引号指定。 - isEnableTranslation: true # 是否启用翻译歌词。 - isOnlyOutputTranslation: false # 是否只输出翻译歌词。 - isSkipExistLyricFiles: false # 如果歌词文件已经存在,是否跳过这些文件。 - fileEncoding: 'utf-8' # 歌词文件的编码格式。 \ No newline at end of file +# 允许扫描的歌曲文件后缀名。 +supportFileExtensions: + - '*.mp3' + - '*.flac' + - '*.wav' + - '*.m4a' + - '*.ogg' + - '*.opus' + +# 网络代理服务设置,仅支持 HTTP 代理。 +networkOptions: + isEnable: false # 是否启用代理。 + ip: 127.0.0.1 # 代理服务 IP 地址。 + port: 4780 # 代理服务端口号。 + updateUrl: https://api.myzony.com/lrc-tools/update # 更新检查地址。 + +# 下载器的相关参数配置。 +provider: + # 标签扫描器的相关参数配置。 + tag: + # 支持的标签扫描器。 + plugin: + - name: Taglib # 基于 Taglib 库的标签扫描器。 + priority: 1 # 优先级,升序排列。 + - name: FileName # 基于文件名的标签扫描器。 + priority: 2 + # 基于文件名扫描器的扩展参数。 + extensions: + # 正则表达式,用于匹配文件名中的作者信息和歌曲信息,可根据 + # 自己的需求进行调整。 + regularExpressions: "(?'artist'.+)\\s-\\s(?'name'.+)" + # 歌曲标签屏蔽字典替换功能。 + blockWord: + isEnable: false # 是否启用屏蔽字典。 + filePath: 'BlockWords.json' # 屏蔽字典的路径。 + # 歌词下载器的相关参数配置。 + lyric: + # 支持的歌词下载器。 + plugin: + - name: NetEase # 基于网易云音乐的歌词下载器。 + priority: 1 # 优先级,升序排列,改为 -1 时禁用。 + depth: 10 # 搜索深度,值越大搜索结果越多,但搜索时间越长。 + additional: + isEnableRomanOutput: false # 是否启用罗马音输出,本参数仅当对应歌曲有罗马音歌词时有效。 + - name: QQ # 基于 QQ 音乐的歌词下载器。 + priority: 2 + # depth: 10 # 暂时不支持。 + - name: KuGou # 基于酷狗音乐的歌词下载器。 + priority: 3 + depth: 10 + - name: KuWo # 基于酷我音乐的歌词下载器。 + priority: 4 + depth: 10 + # 歌词下载的一些共有配置参数。 + config: + isOneLine: true # 双语歌词是否合并为一行展示。 + lineBreak: "\n" # 换行符的类型,记得使用双引号指定。 + isEnableTranslation: true # 是否启用翻译歌词。 + isOnlyOutputTranslation: false # 是否只输出翻译歌词。 + isSkipExistLyricFiles: false # 如果歌词文件已经存在,是否跳过这些文件。 + fileEncoding: 'utf-8' # 歌词文件的编码格式。 \ No newline at end of file