mirror of
https://github.com/real-zony/ZonyLrcToolsX.git
synced 2025-07-01 12:11:13 +00:00
docs: Improve the comment of the code.
改进代码的注释。
This commit is contained in:
parent
8e1e61764c
commit
6ec03d0ec3
@ -4,7 +4,7 @@ using System.Text.RegularExpressions;
|
||||
namespace ZonyLrcTools.Cli.Infrastructure.Lyric
|
||||
{
|
||||
/// <summary>
|
||||
/// 每一行歌词的对象。
|
||||
/// 歌词的行对象,是 <see cref="LyricItemCollection"/> 的最小单位。。
|
||||
/// </summary>
|
||||
public class LyricItem : IComparable<LyricItem>
|
||||
{
|
||||
@ -121,6 +121,9 @@ namespace ZonyLrcTools.Cli.Infrastructure.Lyric
|
||||
return HashCode.Combine(LyricText, Minute, Second);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获得歌词行的标准文本。
|
||||
/// </summary>
|
||||
public override string ToString() => $"[{Minute:00}:{Second:00.00}]{LyricText}";
|
||||
}
|
||||
}
|
@ -7,7 +7,7 @@ using ZonyLrcTools.Cli.Infrastructure.Extensions;
|
||||
namespace ZonyLrcTools.Cli.Infrastructure.Lyric
|
||||
{
|
||||
/// <summary>
|
||||
/// 歌词数据,包含多条歌词对象(<see cref="LyricItem"/>)。
|
||||
/// 歌词数据,包含多条歌词行对象(<see cref="LyricItem"/>)。
|
||||
/// </summary>
|
||||
public class LyricItemCollection : List<LyricItem>
|
||||
{
|
||||
|
@ -5,6 +5,9 @@ using ZonyLrcTools.Cli.Infrastructure.DependencyInject;
|
||||
|
||||
namespace ZonyLrcTools.Cli.Infrastructure.Lyric
|
||||
{
|
||||
/// <summary>
|
||||
/// <see cref="ILyricItemCollectionFactory"/> 的默认实现。
|
||||
/// </summary>
|
||||
public class LyricItemCollectionFactory : ILyricItemCollectionFactory, ITransientDependency
|
||||
{
|
||||
private readonly ToolOptions _options;
|
||||
|
@ -1,13 +1,31 @@
|
||||
namespace ZonyLrcTools.Cli.Infrastructure
|
||||
{
|
||||
/// <summary>
|
||||
/// 歌曲信息的承载类,携带歌曲的相关数据。
|
||||
/// </summary>
|
||||
public class MusicInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// 歌曲对应的物理文件路径。
|
||||
/// </summary>
|
||||
public string FilePath { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 歌曲的名称。
|
||||
/// </summary>
|
||||
public string Name { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 歌曲的作者。
|
||||
/// </summary>
|
||||
public string Artist { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 构建一个新的 <see cref="MusicInfo"/> 对象。
|
||||
/// </summary>
|
||||
/// <param name="filePath">歌曲对应的物理文件路径。</param>
|
||||
/// <param name="name">歌曲的名称。</param>
|
||||
/// <param name="artist">歌曲的作者。</param>
|
||||
public MusicInfo(string filePath, string name, string artist)
|
||||
{
|
||||
FilePath = filePath;
|
||||
|
@ -4,7 +4,6 @@ using System.Net.Http;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Newtonsoft.Json;
|
||||
using ZonyLrcTools.Cli.Infrastructure.DependencyInject;
|
||||
using ZonyLrcTools.Cli.Infrastructure.Exceptions;
|
||||
@ -14,15 +13,12 @@ namespace ZonyLrcTools.Cli.Infrastructure.Network
|
||||
public class DefaultWarpHttpClient : IWarpHttpClient, ITransientDependency
|
||||
{
|
||||
private readonly IHttpClientFactory _httpClientFactory;
|
||||
private readonly ILogger<DefaultWarpHttpClient> _logger;
|
||||
|
||||
public const string HttpClientNameConstant = "WarpClient";
|
||||
|
||||
public DefaultWarpHttpClient(IHttpClientFactory httpClientFactory,
|
||||
ILogger<DefaultWarpHttpClient> logger)
|
||||
public DefaultWarpHttpClient(IHttpClientFactory httpClientFactory)
|
||||
{
|
||||
_httpClientFactory = httpClientFactory;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
public async ValueTask<string> PostAsync(string url,
|
||||
|
@ -6,6 +6,9 @@ using ZonyLrcTools.Cli.Infrastructure.Exceptions;
|
||||
|
||||
namespace ZonyLrcTools.Cli.Infrastructure.Tag
|
||||
{
|
||||
/// <summary>
|
||||
/// 默认的标签加载器 <see cref="ITagLoader"/> 实现。
|
||||
/// </summary>
|
||||
public class DefaultTagLoader : ITagLoader, ITransientDependency
|
||||
{
|
||||
protected readonly IEnumerable<ITagInfoProvider> TagInfoProviders;
|
||||
|
@ -7,6 +7,9 @@ using ZonyLrcTools.Cli.Infrastructure.DependencyInject;
|
||||
|
||||
namespace ZonyLrcTools.Cli.Infrastructure.Tag
|
||||
{
|
||||
/// <summary>
|
||||
/// 基于正则表达式的标签解析器,从文件名当中解析歌曲的标签信息。
|
||||
/// </summary>
|
||||
public class FileNameTagInfoProvider : ITagInfoProvider, ITransientDependency
|
||||
{
|
||||
public int Priority => 2;
|
||||
|
@ -2,12 +2,26 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace ZonyLrcTools.Cli.Infrastructure.Tag
|
||||
{
|
||||
/// <summary>
|
||||
/// 具体的标签解析器,执行真正的标签解析逻辑。
|
||||
/// </summary>
|
||||
public interface ITagInfoProvider
|
||||
{
|
||||
/// <summary>
|
||||
/// 解析时的优先级。
|
||||
/// </summary>
|
||||
int Priority { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 标签解析器的唯一标识。
|
||||
/// </summary>
|
||||
string Name { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 加载歌曲文件的标签信息。
|
||||
/// </summary>
|
||||
/// <param name="filePath">歌曲文件的路径。</param>
|
||||
/// <returns>加载完成的歌曲信息。</returns>
|
||||
ValueTask<MusicInfo> LoadAsync(string filePath);
|
||||
}
|
||||
}
|
@ -2,10 +2,13 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace ZonyLrcTools.Cli.Infrastructure.Tag
|
||||
{
|
||||
/// <summary>
|
||||
/// 标签加载器,用于加载文件的音乐标签信息。
|
||||
/// </summary>
|
||||
public interface ITagLoader
|
||||
{
|
||||
/// <summary>
|
||||
/// 加载歌曲的标签信息。
|
||||
/// 加载歌曲文件的标签信息。
|
||||
/// </summary>
|
||||
/// <param name="filePath">歌曲文件的路径。</param>
|
||||
/// <returns>加载完成的歌曲信息。</returns>
|
||||
|
@ -5,6 +5,9 @@ using ZonyLrcTools.Cli.Infrastructure.Exceptions;
|
||||
|
||||
namespace ZonyLrcTools.Cli.Infrastructure.Tag
|
||||
{
|
||||
/// <summary>
|
||||
/// 基于 TagLib 的标签信息解析器。
|
||||
/// </summary>
|
||||
public class TaglibTagInfoProvider : ITagInfoProvider, ITransientDependency
|
||||
{
|
||||
public int Priority => 1;
|
||||
|
@ -4,6 +4,9 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace ZonyLrcTools.Cli.Infrastructure.Threading
|
||||
{
|
||||
/// <summary>
|
||||
/// 针对 Task 的包装类,基于信号量 <see cref="SemaphoreSlim"/> 限定并行度。
|
||||
/// </summary>
|
||||
public class WarpTask : IDisposable
|
||||
{
|
||||
private readonly CancellationTokenSource _cts = new();
|
||||
|
@ -32,8 +32,4 @@
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Infrastructure\Network\Exceptions" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
Loading…
x
Reference in New Issue
Block a user