diff --git a/src/ZonyLrcTools.Cli/Infrastructure/Lyric/LyricDownloader.cs b/src/ZonyLrcTools.Cli/Infrastructure/Lyric/LyricDownloader.cs
index 96aa19a..e701dba 100644
--- a/src/ZonyLrcTools.Cli/Infrastructure/Lyric/LyricDownloader.cs
+++ b/src/ZonyLrcTools.Cli/Infrastructure/Lyric/LyricDownloader.cs
@@ -11,6 +11,12 @@ namespace ZonyLrcTools.Cli.Infrastructure.Lyric
{
public abstract string DownloaderName { get; }
+ ///
+ /// 歌词数据下载的核心逻辑。
+ ///
+ /// 歌曲名称。
+ /// 歌曲作者/艺术家。
+ /// 下载完成的歌曲数据。
public virtual async ValueTask DownloadAsync(string songName, string artist)
{
var args = new LyricDownloaderArgs(songName, artist);
@@ -19,6 +25,10 @@ namespace ZonyLrcTools.Cli.Infrastructure.Lyric
return await GenerateLyricAsync(downloadDataBytes, args);
}
+ ///
+ /// 通用的验证逻辑,验证基本参数是否正确。
+ ///
+ /// 歌词下载时需要的参数信息。
protected virtual ValueTask ValidateAsync(LyricDownloaderArgs args)
{
if (string.IsNullOrEmpty(args.SongName))
@@ -34,8 +44,15 @@ namespace ZonyLrcTools.Cli.Infrastructure.Lyric
return ValueTask.CompletedTask;
}
+ ///
+ /// 根据指定的歌曲参数,下载歌词数据。
+ ///
protected abstract ValueTask DownloadDataAsync(LyricDownloaderArgs args);
+ ///
+ /// 根据指定的歌词二进制数据,生成歌词数据。
+ ///
+ /// 歌词的原始二进制数据。
protected abstract ValueTask GenerateLyricAsync(byte[] data, LyricDownloaderArgs args);
}
}
\ No newline at end of file