mirror of
https://github.com/real-zony/ZonyLrcToolsX.git
synced 2025-07-01 20:30:41 +00:00
fix: Fixed the index exception that may be caused by the KuGou music provider.
This commit is contained in:
parent
949dac7ad1
commit
493f48cefe
@ -40,6 +40,11 @@ namespace ZonyLrcTools.Common.Lyrics.Providers.KuGou
|
|||||||
var accessKeyResponse = await _warpHttpClient.GetAsync<GetLyricAccessKeyResponse>(KuGouGetLyricAccessKeyUrl,
|
var accessKeyResponse = await _warpHttpClient.GetAsync<GetLyricAccessKeyResponse>(KuGouGetLyricAccessKeyUrl,
|
||||||
new GetLyricAccessKeyRequest(searchResult.Data.List[0].FileHash));
|
new GetLyricAccessKeyRequest(searchResult.Data.List[0].FileHash));
|
||||||
|
|
||||||
|
if (accessKeyResponse.AccessKeyDataObjects.Count == 0)
|
||||||
|
{
|
||||||
|
throw new ErrorCodeException(ErrorCodes.NoMatchingSong, attachObj: args);
|
||||||
|
}
|
||||||
|
|
||||||
var accessKeyObject = accessKeyResponse.AccessKeyDataObjects[0];
|
var accessKeyObject = accessKeyResponse.AccessKeyDataObjects[0];
|
||||||
return await _warpHttpClient.GetAsync(KuGouGetLyricUrl,
|
return await _warpHttpClient.GetAsync(KuGouGetLyricUrl,
|
||||||
new GetLyricRequest(accessKeyObject.Id, accessKeyObject.AccessKey));
|
new GetLyricRequest(accessKeyObject.Id, accessKeyObject.AccessKey));
|
||||||
@ -60,7 +65,7 @@ namespace ZonyLrcTools.Common.Lyrics.Providers.KuGou
|
|||||||
|
|
||||||
protected virtual void ValidateSongSearchResponse(SongSearchResponse response, LyricsProviderArgs args)
|
protected virtual void ValidateSongSearchResponse(SongSearchResponse response, LyricsProviderArgs args)
|
||||||
{
|
{
|
||||||
if (response.ErrorCode != 0 && response.Status != 1 || response.Data.List == null)
|
if ((response.ErrorCode != 0 && response.Status != 1) || response.Data.List.Count == 0)
|
||||||
{
|
{
|
||||||
throw new ErrorCodeException(ErrorCodes.NoMatchingSong, attachObj: args);
|
throw new ErrorCodeException(ErrorCodes.NoMatchingSong, attachObj: args);
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ using System.Linq;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Shouldly;
|
using Shouldly;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
using ZonyLrcTools.Common.Infrastructure.Exceptions;
|
||||||
using ZonyLrcTools.Common.Lyrics;
|
using ZonyLrcTools.Common.Lyrics;
|
||||||
|
|
||||||
namespace ZonyLrcTools.Tests.Infrastructure.Lyrics
|
namespace ZonyLrcTools.Tests.Infrastructure.Lyrics
|
||||||
@ -25,5 +26,18 @@ namespace ZonyLrcTools.Tests.Infrastructure.Lyrics
|
|||||||
lyric.ShouldNotBeNull();
|
lyric.ShouldNotBeNull();
|
||||||
lyric.IsPruneMusic.ShouldBe(false);
|
lyric.IsPruneMusic.ShouldBe(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task DownloadAsync_Issue133_Test()
|
||||||
|
{
|
||||||
|
await Should.ThrowAsync<ErrorCodeException>(_lyricsProvider.DownloadAsync("天ノ弱", "漆柚").AsTask);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task DownloadAsync_Index_Exception_Test()
|
||||||
|
{
|
||||||
|
var lyric = await _lyricsProvider.DownloadAsync("40'z", "ZOOLY");
|
||||||
|
lyric.ToString().ShouldNotBeNullOrEmpty();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user