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 namespace ZonyLrcTools.Cli.Infrastructure.Lyric
{ {
/// <summary> /// <summary>
/// 每一行歌词的对象。 /// 歌词的对象,是 <see cref="LyricItemCollection"/> 的最小单位。
/// </summary> /// </summary>
public class LyricItem : IComparable<LyricItem> public class LyricItem : IComparable<LyricItem>
{ {
@ -121,6 +121,9 @@ namespace ZonyLrcTools.Cli.Infrastructure.Lyric
return HashCode.Combine(LyricText, Minute, Second); return HashCode.Combine(LyricText, Minute, Second);
} }
/// <summary>
/// 获得歌词行的标准文本。
/// </summary>
public override string ToString() => $"[{Minute:00}:{Second:00.00}]{LyricText}"; 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 namespace ZonyLrcTools.Cli.Infrastructure.Lyric
{ {
/// <summary> /// <summary>
/// 歌词数据,包含多条歌词对象(<see cref="LyricItem"/>)。 /// 歌词数据,包含多条歌词对象(<see cref="LyricItem"/>)。
/// </summary> /// </summary>
public class LyricItemCollection : List<LyricItem> public class LyricItemCollection : List<LyricItem>
{ {

View File

@ -5,6 +5,9 @@ using ZonyLrcTools.Cli.Infrastructure.DependencyInject;
namespace ZonyLrcTools.Cli.Infrastructure.Lyric namespace ZonyLrcTools.Cli.Infrastructure.Lyric
{ {
/// <summary>
/// <see cref="ILyricItemCollectionFactory"/> 的默认实现。
/// </summary>
public class LyricItemCollectionFactory : ILyricItemCollectionFactory, ITransientDependency public class LyricItemCollectionFactory : ILyricItemCollectionFactory, ITransientDependency
{ {
private readonly ToolOptions _options; private readonly ToolOptions _options;

View File

@ -1,13 +1,31 @@
namespace ZonyLrcTools.Cli.Infrastructure namespace ZonyLrcTools.Cli.Infrastructure
{ {
/// <summary>
/// 歌曲信息的承载类,携带歌曲的相关数据。
/// </summary>
public class MusicInfo public class MusicInfo
{ {
/// <summary>
/// 歌曲对应的物理文件路径。
/// </summary>
public string FilePath { get; } public string FilePath { get; }
/// <summary>
/// 歌曲的名称。
/// </summary>
public string Name { get; } public string Name { get; }
/// <summary>
/// 歌曲的作者。
/// </summary>
public string Artist { get; } 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) public MusicInfo(string filePath, string name, string artist)
{ {
FilePath = filePath; FilePath = filePath;

View File

@ -4,7 +4,6 @@ using System.Net.Http;
using System.Reflection; using System.Reflection;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json; using Newtonsoft.Json;
using ZonyLrcTools.Cli.Infrastructure.DependencyInject; using ZonyLrcTools.Cli.Infrastructure.DependencyInject;
using ZonyLrcTools.Cli.Infrastructure.Exceptions; using ZonyLrcTools.Cli.Infrastructure.Exceptions;
@ -14,15 +13,12 @@ namespace ZonyLrcTools.Cli.Infrastructure.Network
public class DefaultWarpHttpClient : IWarpHttpClient, ITransientDependency public class DefaultWarpHttpClient : IWarpHttpClient, ITransientDependency
{ {
private readonly IHttpClientFactory _httpClientFactory; private readonly IHttpClientFactory _httpClientFactory;
private readonly ILogger<DefaultWarpHttpClient> _logger;
public const string HttpClientNameConstant = "WarpClient"; public const string HttpClientNameConstant = "WarpClient";
public DefaultWarpHttpClient(IHttpClientFactory httpClientFactory, public DefaultWarpHttpClient(IHttpClientFactory httpClientFactory)
ILogger<DefaultWarpHttpClient> logger)
{ {
_httpClientFactory = httpClientFactory; _httpClientFactory = httpClientFactory;
_logger = logger;
} }
public async ValueTask<string> PostAsync(string url, public async ValueTask<string> PostAsync(string url,

View File

@ -6,6 +6,9 @@ using ZonyLrcTools.Cli.Infrastructure.Exceptions;
namespace ZonyLrcTools.Cli.Infrastructure.Tag namespace ZonyLrcTools.Cli.Infrastructure.Tag
{ {
/// <summary>
/// 默认的标签加载器 <see cref="ITagLoader"/> 实现。
/// </summary>
public class DefaultTagLoader : ITagLoader, ITransientDependency public class DefaultTagLoader : ITagLoader, ITransientDependency
{ {
protected readonly IEnumerable<ITagInfoProvider> TagInfoProviders; protected readonly IEnumerable<ITagInfoProvider> TagInfoProviders;

View File

@ -7,6 +7,9 @@ using ZonyLrcTools.Cli.Infrastructure.DependencyInject;
namespace ZonyLrcTools.Cli.Infrastructure.Tag namespace ZonyLrcTools.Cli.Infrastructure.Tag
{ {
/// <summary>
/// 基于正则表达式的标签解析器,从文件名当中解析歌曲的标签信息。
/// </summary>
public class FileNameTagInfoProvider : ITagInfoProvider, ITransientDependency public class FileNameTagInfoProvider : ITagInfoProvider, ITransientDependency
{ {
public int Priority => 2; public int Priority => 2;

View File

@ -2,12 +2,26 @@ using System.Threading.Tasks;
namespace ZonyLrcTools.Cli.Infrastructure.Tag namespace ZonyLrcTools.Cli.Infrastructure.Tag
{ {
/// <summary>
/// 具体的标签解析器,执行真正的标签解析逻辑。
/// </summary>
public interface ITagInfoProvider public interface ITagInfoProvider
{ {
/// <summary>
/// 解析时的优先级。
/// </summary>
int Priority { get; } int Priority { get; }
/// <summary>
/// 标签解析器的唯一标识。
/// </summary>
string Name { get; } string Name { get; }
/// <summary>
/// 加载歌曲文件的标签信息。
/// </summary>
/// <param name="filePath">歌曲文件的路径。</param>
/// <returns>加载完成的歌曲信息。</returns>
ValueTask<MusicInfo> LoadAsync(string filePath); ValueTask<MusicInfo> LoadAsync(string filePath);
} }
} }

View File

@ -2,10 +2,13 @@ using System.Threading.Tasks;
namespace ZonyLrcTools.Cli.Infrastructure.Tag namespace ZonyLrcTools.Cli.Infrastructure.Tag
{ {
/// <summary>
/// 标签加载器,用于加载文件的音乐标签信息。
/// </summary>
public interface ITagLoader public interface ITagLoader
{ {
/// <summary> /// <summary>
/// 加载歌曲的标签信息。 /// 加载歌曲文件的标签信息。
/// </summary> /// </summary>
/// <param name="filePath">歌曲文件的路径。</param> /// <param name="filePath">歌曲文件的路径。</param>
/// <returns>加载完成的歌曲信息。</returns> /// <returns>加载完成的歌曲信息。</returns>

View File

@ -5,6 +5,9 @@ using ZonyLrcTools.Cli.Infrastructure.Exceptions;
namespace ZonyLrcTools.Cli.Infrastructure.Tag namespace ZonyLrcTools.Cli.Infrastructure.Tag
{ {
/// <summary>
/// 基于 TagLib 的标签信息解析器。
/// </summary>
public class TaglibTagInfoProvider : ITagInfoProvider, ITransientDependency public class TaglibTagInfoProvider : ITagInfoProvider, ITransientDependency
{ {
public int Priority => 1; public int Priority => 1;

View File

@ -4,6 +4,9 @@ using System.Threading.Tasks;
namespace ZonyLrcTools.Cli.Infrastructure.Threading namespace ZonyLrcTools.Cli.Infrastructure.Threading
{ {
/// <summary>
/// 针对 Task 的包装类,基于信号量 <see cref="SemaphoreSlim"/> 限定并行度。
/// </summary>
public class WarpTask : IDisposable public class WarpTask : IDisposable
{ {
private readonly CancellationTokenSource _cts = new(); private readonly CancellationTokenSource _cts = new();

View File

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