mirror of
https://github.com/real-zony/ZonyLrcToolsX.git
synced 2025-07-02 04:43:23 +00:00
parent
2ea5754e3e
commit
5520162a4c
@ -51,7 +51,7 @@ namespace ZonyLrcTools.Cli.Infrastructure.Album.NetEase
|
||||
|
||||
var songDetailJsonStr = await _warpHttpClient.GetAsync(
|
||||
GetMusicInfoApi,
|
||||
new GetSongDetailsRequest(searchResult.GetFirstSongId()),
|
||||
new GetSongDetailsRequest(searchResult.GetFirstMatchSongId(songName)),
|
||||
_defaultOption);
|
||||
|
||||
var url = JObject.Parse(songDetailJsonStr).SelectToken("$.songs[0].album.picUrl")?.Value<string>();
|
||||
|
@ -1,4 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace ZonyLrcTools.Cli.Infrastructure.Lyric.NetEase.JsonModel
|
||||
@ -9,9 +10,10 @@ namespace ZonyLrcTools.Cli.Infrastructure.Lyric.NetEase.JsonModel
|
||||
|
||||
[JsonProperty("code")] public int StatusCode { get; set; }
|
||||
|
||||
public int GetFirstSongId()
|
||||
public int GetFirstMatchSongId(string songName)
|
||||
{
|
||||
return Items.SongItems[0].Id;
|
||||
var item = Items.SongItems.FirstOrDefault(x => x.Name == songName);
|
||||
return item?.Id ?? Items.SongItems[0].Id;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -48,7 +48,7 @@ namespace ZonyLrcTools.Cli.Infrastructure.Lyric.NetEase
|
||||
|
||||
var lyricResponse = await _warpHttpClient.GetAsync(
|
||||
NetEaseGetLyricUrl,
|
||||
new GetLyricRequest(searchResult.GetFirstSongId()),
|
||||
new GetLyricRequest(searchResult.GetFirstMatchSongId(args.SongName)),
|
||||
msg => msg.Headers.Referrer = new Uri(NetEaseRequestReferer));
|
||||
|
||||
return Encoding.UTF8.GetBytes(lyricResponse);
|
||||
|
@ -1,7 +1,6 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Shouldly;
|
||||
using Xunit;
|
||||
using ZonyLrcTools.Cli.Infrastructure.Lyric;
|
||||
@ -10,14 +9,18 @@ namespace ZonyLrcTools.Tests.Infrastructure.Lyric
|
||||
{
|
||||
public class KuGouLyricDownloaderTests : TestBase
|
||||
{
|
||||
private readonly ILyricDownloader _lyricDownloader;
|
||||
|
||||
public KuGouLyricDownloaderTests()
|
||||
{
|
||||
_lyricDownloader = GetService<IEnumerable<ILyricDownloader>>()
|
||||
.FirstOrDefault(t => t.DownloaderName == InternalLyricDownloaderNames.KuGou);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task DownloadAsync_Test()
|
||||
{
|
||||
var downloaderList = ServiceProvider.GetRequiredService<IEnumerable<ILyricDownloader>>();
|
||||
var kuGouDownloader = downloaderList.FirstOrDefault(t => t.DownloaderName == InternalLyricDownloaderNames.KuGou);
|
||||
|
||||
kuGouDownloader.ShouldNotBeNull();
|
||||
var lyric = await kuGouDownloader.DownloadAsync("东方红", null);
|
||||
var lyric = await _lyricDownloader.DownloadAsync("东方红", null);
|
||||
lyric.ShouldNotBeNull();
|
||||
lyric.IsPruneMusic.ShouldBe(false);
|
||||
}
|
||||
|
@ -10,16 +10,29 @@ namespace ZonyLrcTools.Tests.Infrastructure.Lyric
|
||||
{
|
||||
public class NetEaseLyricDownloaderTests : TestBase
|
||||
{
|
||||
private readonly ILyricDownloader _lyricDownloader;
|
||||
|
||||
public NetEaseLyricDownloaderTests()
|
||||
{
|
||||
_lyricDownloader = GetService<IEnumerable<ILyricDownloader>>()
|
||||
.FirstOrDefault(t => t.DownloaderName == InternalLyricDownloaderNames.NetEase);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task DownloadAsync_Test()
|
||||
{
|
||||
var downloaderList = ServiceProvider.GetRequiredService<IEnumerable<ILyricDownloader>>();
|
||||
var netEaseDownloader = downloaderList.FirstOrDefault(t => t.DownloaderName == InternalLyricDownloaderNames.NetEase);
|
||||
|
||||
netEaseDownloader.ShouldNotBeNull();
|
||||
var lyric = await netEaseDownloader.DownloadAsync("Hollow", "Janet Leon");
|
||||
var lyric = await _lyricDownloader.DownloadAsync("Hollow", "Janet Leon");
|
||||
lyric.ShouldNotBeNull();
|
||||
lyric.IsPruneMusic.ShouldBe(false);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task DownloadAsync_Issue_75_Test()
|
||||
{
|
||||
var lyric = await _lyricDownloader.DownloadAsync("Daybreak", "samfree,初音ミク");
|
||||
lyric.ShouldNotBeNull();
|
||||
lyric.IsPruneMusic.ShouldBe(false);
|
||||
lyric.ToString().Contains("惑う心繋ぎ止める").ShouldBeTrue();
|
||||
}
|
||||
}
|
||||
}
|
@ -10,14 +10,18 @@ namespace ZonyLrcTools.Tests.Infrastructure.Lyric
|
||||
{
|
||||
public class QQLyricDownloaderTests : TestBase
|
||||
{
|
||||
private readonly ILyricDownloader _lyricDownloader;
|
||||
|
||||
public QQLyricDownloaderTests()
|
||||
{
|
||||
_lyricDownloader = GetService<IEnumerable<ILyricDownloader>>()
|
||||
.FirstOrDefault(t => t.DownloaderName == InternalLyricDownloaderNames.QQ);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task DownloadAsync_Test()
|
||||
{
|
||||
var downloaderList = ServiceProvider.GetRequiredService<IEnumerable<ILyricDownloader>>();
|
||||
var qqDownloader = downloaderList.FirstOrDefault(t => t.DownloaderName == InternalLyricDownloaderNames.QQ);
|
||||
|
||||
qqDownloader.ShouldNotBeNull();
|
||||
var lyric = await qqDownloader.DownloadAsync("Hollow", "Janet Leon");
|
||||
var lyric = await _lyricDownloader.DownloadAsync("Hollow", "Janet Leon");
|
||||
lyric.ShouldNotBeNull();
|
||||
lyric.IsPruneMusic.ShouldBe(false);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user