mirror of
https://github.com/Sarsoo/IF.Lastfm.git
synced 2024-10-17 07:13:09 +01:00
Add bio and similar to artist object
This commit is contained in:
parent
b06517d32a
commit
e5395dfd19
@ -98,6 +98,7 @@
|
||||
<Compile Include="Objects\BuyLink.cs" />
|
||||
<Compile Include="Objects\CountryCode.cs" />
|
||||
<Compile Include="Objects\ILastFmObject.cs" />
|
||||
<Compile Include="Objects\LastBio.cs" />
|
||||
<Compile Include="Objects\LastImageSet.cs" />
|
||||
<Compile Include="Objects\LastShout.cs" />
|
||||
<Compile Include="Objects\LastStation.cs" />
|
||||
|
@ -14,11 +14,12 @@ public class LastArtist : ILastfmObject
|
||||
|
||||
public string Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
public LastBio Bio { get; set; }
|
||||
public string Mbid { get; set; }
|
||||
public Uri Url { get; set; }
|
||||
public bool OnTour { get; set; }
|
||||
public IEnumerable<LastTag> Tags { get; set; }
|
||||
|
||||
public List<LastArtist> Similar { get; set; }
|
||||
public LastImageSet MainImage { get; set; }
|
||||
|
||||
#endregion
|
||||
@ -40,6 +41,12 @@ internal static LastArtist ParseJToken(JToken token)
|
||||
|
||||
a.OnTour = Convert.ToBoolean(token.Value<int>("ontour"));
|
||||
|
||||
var bioToken = token.SelectToken("bio");
|
||||
if (bioToken != null)
|
||||
{
|
||||
a.Bio = LastBio.ParseJToken(bioToken);
|
||||
}
|
||||
|
||||
var tagsToken = token.SelectToken("tags");
|
||||
if (tagsToken != null)
|
||||
{
|
||||
@ -60,6 +67,27 @@ internal static LastArtist ParseJToken(JToken token)
|
||||
a.MainImage = imageCollection;
|
||||
}
|
||||
|
||||
a.Similar = new List<LastArtist>();
|
||||
var similarToken = token.SelectToken("similar");
|
||||
if (similarToken != null)
|
||||
{
|
||||
var similarArtists = similarToken.SelectToken("artist");
|
||||
if (similarArtists != null && similarArtists.Children().Any())
|
||||
{
|
||||
// array notation isn't used on the api when only one object is available
|
||||
if (similarArtists.Type != JTokenType.Array)
|
||||
{
|
||||
var item = ParseJToken(similarArtists);
|
||||
a.Similar.Add(item);
|
||||
}
|
||||
else
|
||||
{
|
||||
var items = similarArtists.Children().Select(ParseJToken);
|
||||
a.Similar.AddRange(items);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return a;
|
||||
}
|
||||
|
||||
|
32
src/IF.Lastfm.Core/Objects/LastBio.cs
Normal file
32
src/IF.Lastfm.Core/Objects/LastBio.cs
Normal file
@ -0,0 +1,32 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
namespace IF.Lastfm.Core.Objects
|
||||
{
|
||||
public class LastBio : ILastfmObject
|
||||
{
|
||||
#region Properties
|
||||
|
||||
public DateTime Published { get; set; }
|
||||
public string Summary { get; set; }
|
||||
public string Content { get; set; }
|
||||
public int YearFormed { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
internal static LastBio ParseJToken(JToken token)
|
||||
{
|
||||
return new LastBio
|
||||
{
|
||||
Published = token.Value<DateTime>("published"),
|
||||
Summary = token.Value<string>("summary").Trim(),
|
||||
Content = token.Value<string>("content").Trim(),
|
||||
YearFormed = token.Value<int>("yearformed")
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user