mirror of
https://github.com/Sarsoo/IF.Lastfm.git
synced 2024-10-17 07:13:09 +01:00
Merge branch 'fckoppenol-master'
This commit is contained in:
commit
b285c273e9
@ -18,7 +18,7 @@ public class ArtistGetTopTagsCommandTests : CommandTestsBase
|
|||||||
[SetUp]
|
[SetUp]
|
||||||
public void Initialise()
|
public void Initialise()
|
||||||
{
|
{
|
||||||
_command = new GetTopTagsCommand(MAuth.Object, "");
|
_command = new GetTopTagsCommand(MAuth.Object);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
@ -104,8 +104,9 @@ public Task<PageResponse<LastTag>> GetTagsByUserAsync(string artist, string user
|
|||||||
|
|
||||||
public Task<PageResponse<LastTag>> GetTopTagsAsync(string artist, bool autocorrect = false)
|
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,
|
Autocorrect = autocorrect,
|
||||||
HttpClient = HttpClient
|
HttpClient = HttpClient
|
||||||
};
|
};
|
||||||
@ -113,6 +114,19 @@ public Task<PageResponse<LastTag>> GetTopTagsAsync(string artist, bool autocorre
|
|||||||
return command.ExecuteAsync();
|
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)
|
public async Task<PageResponse<LastShout>> GetShoutsAsync(string artist, int page = 0, int count = LastFm.DefaultPageLength, bool autocorrect = false)
|
||||||
{
|
{
|
||||||
var command = new GetShoutsCommand(Auth, artist)
|
var command = new GetShoutsCommand(Auth, artist)
|
||||||
|
@ -12,18 +12,40 @@ namespace IF.Lastfm.Core.Api.Commands.Artist
|
|||||||
[ApiMethodName("artist.getTopTags")]
|
[ApiMethodName("artist.getTopTags")]
|
||||||
internal class GetTopTagsCommand : GetAsyncCommandBase<PageResponse<LastTag>>
|
internal class GetTopTagsCommand : GetAsyncCommandBase<PageResponse<LastTag>>
|
||||||
{
|
{
|
||||||
|
public string ArtistMbid { get; set; }
|
||||||
|
|
||||||
public string ArtistName { get; set; }
|
public string ArtistName { get; set; }
|
||||||
|
|
||||||
public bool Autocorrect { 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()
|
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());
|
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 resultsToken = jtoken.SelectToken("toptags");
|
||||||
var itemsToken = resultsToken.SelectToken("tag");
|
var itemsToken = resultsToken.SelectToken("tag");
|
||||||
|
|
||||||
return PageResponse<LastTag>.CreateSuccessResponse(itemsToken, token => LastTag.ParseJToken(token));
|
return PageResponse<LastTag>.CreateSuccessResponse(itemsToken, LastTag.ParseJToken);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user