mirror of
https://github.com/Sarsoo/IF.Lastfm.git
synced 2024-10-16 23:13:07 +01:00
Merge branch 'fckoppenol-master'
This commit is contained in:
commit
b285c273e9
@ -18,7 +18,7 @@ public class ArtistGetTopTagsCommandTests : CommandTestsBase
|
||||
[SetUp]
|
||||
public void Initialise()
|
||||
{
|
||||
_command = new GetTopTagsCommand(MAuth.Object, "");
|
||||
_command = new GetTopTagsCommand(MAuth.Object);
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
@ -104,8 +104,9 @@ public Task<PageResponse<LastTag>> GetTagsByUserAsync(string artist, string user
|
||||
|
||||
public Task<PageResponse<LastTag>> GetTopTagsAsync(string artist, bool autocorrect = false)
|
||||
{
|
||||
var command = new GetTopTagsCommand(Auth, artist)
|
||||
var command = new GetTopTagsCommand(Auth)
|
||||
{
|
||||
ArtistName = artist,
|
||||
Autocorrect = autocorrect,
|
||||
HttpClient = HttpClient
|
||||
};
|
||||
@ -113,6 +114,19 @@ public Task<PageResponse<LastTag>> GetTopTagsAsync(string artist, bool autocorre
|
||||
return command.ExecuteAsync();
|
||||
}
|
||||
|
||||
public Task<PageResponse<LastTag>> GetTopTagsByMbidAsync(string mbid, bool autocorrect = false)
|
||||
{
|
||||
var command = new GetTopTagsCommand(Auth)
|
||||
{
|
||||
ArtistMbid = mbid,
|
||||
Autocorrect = autocorrect,
|
||||
HttpClient = HttpClient
|
||||
};
|
||||
|
||||
return command.ExecuteAsync();
|
||||
}
|
||||
|
||||
|
||||
public async Task<PageResponse<LastShout>> GetShoutsAsync(string artist, int page = 0, int count = LastFm.DefaultPageLength, bool autocorrect = false)
|
||||
{
|
||||
var command = new GetShoutsCommand(Auth, artist)
|
||||
|
@ -12,18 +12,40 @@ namespace IF.Lastfm.Core.Api.Commands.Artist
|
||||
[ApiMethodName("artist.getTopTags")]
|
||||
internal class GetTopTagsCommand : GetAsyncCommandBase<PageResponse<LastTag>>
|
||||
{
|
||||
public string ArtistMbid { get; set; }
|
||||
|
||||
public string ArtistName { get; set; }
|
||||
|
||||
public bool Autocorrect { get; set; }
|
||||
|
||||
public GetTopTagsCommand(ILastAuth auth, string artistName) : base(auth)
|
||||
public GetTopTagsCommand(ILastAuth auth) : base(auth)
|
||||
{
|
||||
ArtistName = artistName;
|
||||
}
|
||||
|
||||
|
||||
public override void SetParameters()
|
||||
{
|
||||
Parameters.Add("artist", ArtistName);
|
||||
var hasMbid = !string.IsNullOrEmpty(ArtistMbid);
|
||||
var hasName = !string.IsNullOrEmpty(ArtistName);
|
||||
|
||||
if (!hasMbid && !hasName)
|
||||
{
|
||||
throw new InvalidOperationException($"Either {nameof(ArtistMbid)} or {nameof(ArtistName)} must be set");
|
||||
}
|
||||
|
||||
if (hasMbid && hasName)
|
||||
{
|
||||
throw new InvalidOperationException($"");
|
||||
}
|
||||
|
||||
if (hasMbid)
|
||||
{
|
||||
Parameters.Add("mbid", ArtistMbid);
|
||||
}
|
||||
else
|
||||
{
|
||||
Parameters.Add("artist", ArtistName);
|
||||
}
|
||||
|
||||
Parameters.Add("autocorrect", Convert.ToInt32(Autocorrect).ToString());
|
||||
}
|
||||
|
||||
@ -38,7 +60,7 @@ public override async Task<PageResponse<LastTag>> HandleResponse(HttpResponseMes
|
||||
var resultsToken = jtoken.SelectToken("toptags");
|
||||
var itemsToken = resultsToken.SelectToken("tag");
|
||||
|
||||
return PageResponse<LastTag>.CreateSuccessResponse(itemsToken, token => LastTag.ParseJToken(token));
|
||||
return PageResponse<LastTag>.CreateSuccessResponse(itemsToken, LastTag.ParseJToken);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user