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\BuyLink.cs" />
|
||||||
<Compile Include="Objects\CountryCode.cs" />
|
<Compile Include="Objects\CountryCode.cs" />
|
||||||
<Compile Include="Objects\ILastFmObject.cs" />
|
<Compile Include="Objects\ILastFmObject.cs" />
|
||||||
|
<Compile Include="Objects\LastBio.cs" />
|
||||||
<Compile Include="Objects\LastImageSet.cs" />
|
<Compile Include="Objects\LastImageSet.cs" />
|
||||||
<Compile Include="Objects\LastShout.cs" />
|
<Compile Include="Objects\LastShout.cs" />
|
||||||
<Compile Include="Objects\LastStation.cs" />
|
<Compile Include="Objects\LastStation.cs" />
|
||||||
|
@ -14,11 +14,12 @@ public class LastArtist : ILastfmObject
|
|||||||
|
|
||||||
public string Id { get; set; }
|
public string Id { get; set; }
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
public LastBio Bio { get; set; }
|
||||||
public string Mbid { get; set; }
|
public string Mbid { get; set; }
|
||||||
public Uri Url { get; set; }
|
public Uri Url { get; set; }
|
||||||
public bool OnTour { get; set; }
|
public bool OnTour { get; set; }
|
||||||
public IEnumerable<LastTag> Tags { get; set; }
|
public IEnumerable<LastTag> Tags { get; set; }
|
||||||
|
public List<LastArtist> Similar { get; set; }
|
||||||
public LastImageSet MainImage { get; set; }
|
public LastImageSet MainImage { get; set; }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@ -40,6 +41,12 @@ internal static LastArtist ParseJToken(JToken token)
|
|||||||
|
|
||||||
a.OnTour = Convert.ToBoolean(token.Value<int>("ontour"));
|
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");
|
var tagsToken = token.SelectToken("tags");
|
||||||
if (tagsToken != null)
|
if (tagsToken != null)
|
||||||
{
|
{
|
||||||
@ -60,6 +67,27 @@ internal static LastArtist ParseJToken(JToken token)
|
|||||||
a.MainImage = imageCollection;
|
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;
|
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