docs: Improve the comment of the code.

改进代码的注释。
This commit is contained in:
real-zony 2021-05-07 10:57:08 +08:00
parent 8e1e61764c
commit 6ec03d0ec3
12 changed files with 57 additions and 12 deletions

View File

@ -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}";
}
}

View File

@ -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>
{

View File

@ -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;

View File

@ -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;

View File

@ -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,

View File

@ -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;

View File

@ -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;

View File

@ -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);
}
}

View File

@ -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>

View File

@ -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;

View File

@ -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();

View File

@ -32,8 +32,4 @@
</Content>
</ItemGroup>
<ItemGroup>
<Folder Include="Infrastructure\Network\Exceptions" />
</ItemGroup>
</Project>