diff --git a/src/IF.Lastfm.Core/IF.Lastfm.Core.csproj b/src/IF.Lastfm.Core/IF.Lastfm.Core.csproj
index 9906f47..1b3ba4d 100644
--- a/src/IF.Lastfm.Core/IF.Lastfm.Core.csproj
+++ b/src/IF.Lastfm.Core/IF.Lastfm.Core.csproj
@@ -98,6 +98,7 @@
+
diff --git a/src/IF.Lastfm.Core/Objects/LastArtist.cs b/src/IF.Lastfm.Core/Objects/LastArtist.cs
index b1b5128..783d28c 100644
--- a/src/IF.Lastfm.Core/Objects/LastArtist.cs
+++ b/src/IF.Lastfm.Core/Objects/LastArtist.cs
@@ -14,11 +14,12 @@ public class LastArtist : ILastfmObject
public string Id { get; set; }
public string Name { get; set; }
+ public LastWiki Bio { get; set; }
public string Mbid { get; set; }
public Uri Url { get; set; }
public bool OnTour { get; set; }
public IEnumerable Tags { get; set; }
-
+ public List Similar { get; set; }
public LastImageSet MainImage { get; set; }
#endregion
@@ -39,7 +40,13 @@ internal static LastArtist ParseJToken(JToken token)
a.Url = new Uri(url, UriKind.Absolute);
a.OnTour = Convert.ToBoolean(token.Value("ontour"));
-
+
+ var bioToken = token.SelectToken("bio");
+ if (bioToken != null)
+ {
+ a.Bio = LastWiki.ParseJToken(bioToken);
+ }
+
var tagsToken = token.SelectToken("tags");
if (tagsToken != null)
{
@@ -59,7 +66,28 @@ internal static LastArtist ParseJToken(JToken token)
var imageCollection = LastImageSet.ParseJToken(images);
a.MainImage = imageCollection;
}
-
+
+ a.Similar = new List();
+ 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;
}
diff --git a/src/IF.Lastfm.Core/Objects/LastWiki.cs b/src/IF.Lastfm.Core/Objects/LastWiki.cs
new file mode 100644
index 0000000..96c5cbb
--- /dev/null
+++ b/src/IF.Lastfm.Core/Objects/LastWiki.cs
@@ -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 LastWiki : 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 LastWiki ParseJToken(JToken token)
+ {
+ return new LastWiki
+ {
+ Published = token.Value("published"),
+ Summary = token.Value("summary").Trim(),
+ Content = token.Value("content").Trim(),
+ YearFormed = token.Value("yearformed")
+ };
+ }
+ }
+}