refactor: Adjusted the structure of the configuration file.

BREAKING CHANGE: Adjusted the internal structure of the config.yaml file, removed the top-level hierarchy.
This commit is contained in:
real-zony 2024-07-02 21:22:40 +08:00
parent 2dca5239f5
commit 8b5d5c64b0
6 changed files with 134 additions and 125 deletions

View File

@ -81,8 +81,7 @@ namespace ZonyLrcTools.Cli
.ConfigureLogging(l => l.AddSerilog()) .ConfigureLogging(l => l.AddSerilog())
.ConfigureHostConfiguration(builder => .ConfigureHostConfiguration(builder =>
{ {
builder builder.SetBasePath(AppDomain.CurrentDomain.BaseDirectory)
.SetBasePath(AppDomain.CurrentDomain.BaseDirectory)
.AddYamlFile("config.yaml"); .AddYamlFile("config.yaml");
}) })
.ConfigureServices((_, services) => .ConfigureServices((_, services) =>

View File

@ -1,61 +1,61 @@
globalOption: # 允许扫描的歌曲文件后缀名。
# 允许扫描的歌曲文件后缀名。 supportFileExtensions:
supportFileExtensions: - '*.mp3'
- '*.mp3' - '*.flac'
- '*.flac' - '*.wav'
- '*.wav' - '*.m4a'
- '*.m4a' - '*.ogg'
- '*.ogg' - '*.opus'
- '*.opus'
# 网络代理服务设置,仅支持 HTTP 代理。
networkOptions:
isEnable: false # 是否启用代理。
ip: 127.0.0.1 # 代理服务 IP 地址。
port: 4780 # 代理服务端口号。
updateUrl: https://api.myzony.com/lrc-tools/update # 更新检查地址。
# 下载器的相关参数配置。 # 网络代理服务设置,仅支持 HTTP 代理。
provider: networkOptions:
# 标签扫描器的相关参数配置。 isEnable: false # 是否启用代理。
tag: ip: 127.0.0.1 # 代理服务 IP 地址。
# 支持的标签扫描器。 port: 4780 # 代理服务端口号。
plugin: updateUrl: https://api.myzony.com/lrc-tools/update # 更新检查地址。
- name: Taglib # 基于 Taglib 库的标签扫描器。
priority: 1 # 优先级,升序排列。 # 下载器的相关参数配置。
- name: FileName # 基于文件名的标签扫描器。 provider:
priority: 2 # 标签扫描器的相关参数配置。
# 基于文件名扫描器的扩展参数。 tag:
extensions: # 支持的标签扫描器。
# 正则表达式,用于匹配文件名中的作者信息和歌曲信息,可根据 plugin:
# 自己的需求进行调整。 - name: Taglib # 基于 Taglib 库的标签扫描器。
regularExpressions: "(?'artist'.+)\\s-\\s(?'name'.+)" priority: 1 # 优先级,升序排列。
# 歌曲标签屏蔽字典替换功能。 - name: FileName # 基于文件名的标签扫描器。
blockWord: priority: 2
isEnable: false # 是否启用屏蔽字典。 # 基于文件名扫描器的扩展参数。
filePath: 'BlockWords.json' # 屏蔽字典的路径。 extensions:
# 歌词下载器的相关参数配置。 # 正则表达式,用于匹配文件名中的作者信息和歌曲信息,可根据
lyric: # 自己的需求进行调整。
# 支持的歌词下载器。 regularExpressions: "(?'artist'.+)\\s-\\s(?'name'.+)"
plugin: # 歌曲标签屏蔽字典替换功能。
- name: NetEase # 基于网易云音乐的歌词下载器。 blockWord:
priority: 1 # 优先级,升序排列,改为 -1 时禁用。 isEnable: false # 是否启用屏蔽字典。
depth: 10 # 搜索深度,值越大搜索结果越多,但搜索时间越长。 filePath: 'BlockWords.json' # 屏蔽字典的路径。
additional: # 歌词下载器的相关参数配置。
isEnableRomanOutput: false # 是否启用罗马音输出,本参数仅当对应歌曲有罗马音歌词时有效。 lyric:
- name: QQ # 基于 QQ 音乐的歌词下载器。 # 支持的歌词下载器。
priority: 2 plugin:
# depth: 10 # 暂时不支持。 - name: NetEase # 基于网易云音乐的歌词下载器。
- name: KuGou # 基于酷狗音乐的歌词下载器。 priority: 1 # 优先级,升序排列,改为 -1 时禁用。
priority: 3 depth: 10 # 搜索深度,值越大搜索结果越多,但搜索时间越长。
depth: 10 additional:
- name: KuWo # 基于酷我音乐的歌词下载器。 isEnableRomanOutput: false # 是否启用罗马音输出,本参数仅当对应歌曲有罗马音歌词时有效。
priority: 4 - name: QQ # 基于 QQ 音乐的歌词下载器。
depth: 10 priority: 2
# 歌词下载的一些共有配置参数。 # depth: 10 # 暂时不支持。
config: - name: KuGou # 基于酷狗音乐的歌词下载器。
isOneLine: true # 双语歌词是否合并为一行展示。 priority: 3
lineBreak: "\n" # 换行符的类型,记得使用双引号指定。 depth: 10
isEnableTranslation: true # 是否启用翻译歌词。 - name: KuWo # 基于酷我音乐的歌词下载器。
isOnlyOutputTranslation: false # 是否只输出翻译歌词。 priority: 4
isSkipExistLyricFiles: false # 如果歌词文件已经存在,是否跳过这些文件。 depth: 10
fileEncoding: 'utf-8' # 歌词文件的编码格式。 # 歌词下载的一些共有配置参数。
config:
isOneLine: true # 双语歌词是否合并为一行展示。
lineBreak: "\n" # 换行符的类型,记得使用双引号指定。
isEnableTranslation: true # 是否启用翻译歌词。
isOnlyOutputTranslation: false # 是否只输出翻译歌词。
isSkipExistLyricFiles: false # 如果歌词文件已经存在,是否跳过这些文件。
fileEncoding: 'utf-8' # 歌词文件的编码格式。

View File

@ -16,5 +16,10 @@
/// 搜索深度,值越大搜索结果越多,但搜索时间越长。 /// 搜索深度,值越大搜索结果越多,但搜索时间越长。
/// </summary> /// </summary>
public int Depth { get; set; } public int Depth { get; set; }
/// <summary>
/// 歌词下载器的扩展属性。
/// </summary>
public Dictionary<string, string>? Additional { get; set; }
} }
} }

View File

@ -19,5 +19,10 @@ namespace ZonyLrcTools.Common.Configuration
/// 代理服务器的 端口。 /// 代理服务器的 端口。
/// </summary> /// </summary>
public int Port { get; set; } public int Port { get; set; }
/// <summary>
/// 更新检查的 Url。
/// </summary>
public string UpdateUrl { get; set; } = default!;
} }
} }

View File

@ -47,7 +47,7 @@ namespace ZonyLrcTools.Common.Infrastructure.DependencyInject
.AddYamlFile("config.yaml") .AddYamlFile("config.yaml")
.Build(); .Build();
services.Configure<GlobalOptions>(configuration.GetSection("globalOption")); services.Configure<GlobalOptions>(configuration);
return services; return services;
} }

View File

@ -1,61 +1,61 @@
globalOption: # 允许扫描的歌曲文件后缀名。
# 允许扫描的歌曲文件后缀名。 supportFileExtensions:
supportFileExtensions: - '*.mp3'
- '*.mp3' - '*.flac'
- '*.flac' - '*.wav'
- '*.wav' - '*.m4a'
- '*.m4a' - '*.ogg'
- '*.ogg' - '*.opus'
- '*.opus'
# 网络代理服务设置,仅支持 HTTP 代理。
networkOptions:
isEnable: false # 是否启用代理。
ip: 127.0.0.1 # 代理服务 IP 地址。
port: 4780 # 代理服务端口号。
updateUrl: https://api.myzony.com/lrc-tools/update # 更新检查地址。
# 下载器的相关参数配置。 # 网络代理服务设置,仅支持 HTTP 代理。
provider: networkOptions:
# 标签扫描器的相关参数配置。 isEnable: false # 是否启用代理。
tag: ip: 127.0.0.1 # 代理服务 IP 地址。
# 支持的标签扫描器。 port: 4780 # 代理服务端口号。
plugin: updateUrl: https://api.myzony.com/lrc-tools/update # 更新检查地址。
- name: Taglib # 基于 Taglib 库的标签扫描器。
priority: 1 # 优先级,升序排列。 # 下载器的相关参数配置。
- name: FileName # 基于文件名的标签扫描器。 provider:
priority: 2 # 标签扫描器的相关参数配置。
# 基于文件名扫描器的扩展参数。 tag:
extensions: # 支持的标签扫描器。
# 正则表达式,用于匹配文件名中的作者信息和歌曲信息,可根据 plugin:
# 自己的需求进行调整。 - name: Taglib # 基于 Taglib 库的标签扫描器。
regularExpressions: "(?'artist'.+)\\s-\\s(?'name'.+)" priority: 1 # 优先级,升序排列。
# 歌曲标签屏蔽字典替换功能。 - name: FileName # 基于文件名的标签扫描器。
blockWord: priority: 2
isEnable: false # 是否启用屏蔽字典。 # 基于文件名扫描器的扩展参数。
filePath: 'BlockWords.json' # 屏蔽字典的路径。 extensions:
# 歌词下载器的相关参数配置。 # 正则表达式,用于匹配文件名中的作者信息和歌曲信息,可根据
lyric: # 自己的需求进行调整。
# 支持的歌词下载器。 regularExpressions: "(?'artist'.+)\\s-\\s(?'name'.+)"
plugin: # 歌曲标签屏蔽字典替换功能。
- name: NetEase # 基于网易云音乐的歌词下载器。 blockWord:
priority: 1 # 优先级,升序排列,改为 -1 时禁用。 isEnable: false # 是否启用屏蔽字典。
depth: 10 # 搜索深度,值越大搜索结果越多,但搜索时间越长。 filePath: 'BlockWords.json' # 屏蔽字典的路径。
additional: # 歌词下载器的相关参数配置。
isEnableRomanOutput: false # 是否启用罗马音输出,本参数仅当对应歌曲有罗马音歌词时有效。 lyric:
- name: QQ # 基于 QQ 音乐的歌词下载器。 # 支持的歌词下载器。
priority: 2 plugin:
# depth: 10 # 暂时不支持。 - name: NetEase # 基于网易云音乐的歌词下载器。
- name: KuGou # 基于酷狗音乐的歌词下载器。 priority: 1 # 优先级,升序排列,改为 -1 时禁用。
priority: 3 depth: 10 # 搜索深度,值越大搜索结果越多,但搜索时间越长。
depth: 10 additional:
- name: KuWo # 基于酷我音乐的歌词下载器。 isEnableRomanOutput: false # 是否启用罗马音输出,本参数仅当对应歌曲有罗马音歌词时有效。
priority: 4 - name: QQ # 基于 QQ 音乐的歌词下载器。
depth: 10 priority: 2
# 歌词下载的一些共有配置参数。 # depth: 10 # 暂时不支持。
config: - name: KuGou # 基于酷狗音乐的歌词下载器。
isOneLine: true # 双语歌词是否合并为一行展示。 priority: 3
lineBreak: "\n" # 换行符的类型,记得使用双引号指定。 depth: 10
isEnableTranslation: true # 是否启用翻译歌词。 - name: KuWo # 基于酷我音乐的歌词下载器。
isOnlyOutputTranslation: false # 是否只输出翻译歌词。 priority: 4
isSkipExistLyricFiles: false # 如果歌词文件已经存在,是否跳过这些文件。 depth: 10
fileEncoding: 'utf-8' # 歌词文件的编码格式。 # 歌词下载的一些共有配置参数。
config:
isOneLine: true # 双语歌词是否合并为一行展示。
lineBreak: "\n" # 换行符的类型,记得使用双引号指定。
isEnableTranslation: true # 是否启用翻译歌词。
isOnlyOutputTranslation: false # 是否只输出翻译歌词。
isSkipExistLyricFiles: false # 如果歌词文件已经存在,是否跳过这些文件。
fileEncoding: 'utf-8' # 歌词文件的编码格式。