public ImageSize(ImageInfoSizes size) { switch (size) { case ImageInfoSizes.Small: Width = 30; Height = 30; break; case ImageInfoSizes.Medium: Width = 64; Height = 64; break; case ImageInfoSizes.Large: Width = 126; Height = 126; break; case ImageInfoSizes.ExtraLarge: Width = 252; Height = 252; break; case ImageInfoSizes.Mega: Width = 500; Height = 500; break; default: Width = -1; Height = -1; break; } }
public static LastFmArtist Parse(JObject jsonObj) { LastFmArtist art = new LastFmArtist(); JToken artToken = jsonObj["artist"]; art.Name = artToken.HasProperty("name") ? artToken.Value <string>("name") : "Undefined"; art.Mbid = artToken.HasProperty("mbid") ? artToken.Value <string>("mbid") : "Undefined"; art.Members = new List <LastFmMembers>(); if (artToken.HasProperty("bandmembers")) { foreach (JToken m in artToken["bandmembers"]["member"].Children()) { art.Members.Add(new LastFmMembers { Name = m.Value <string>("name"), YearFrom = m.Value <int>("yearfrom"), YearTo = m.Value <int>("yearto") }); } } art.Url = artToken.HasProperty("url") ? artToken.Value <string>("url") : "Undefined"; art.Streamable = artToken.HasProperty("streamable") && artToken.Value <string>("streamable") != "0"; art.OnTour = artToken.HasProperty("ontour") && artToken.Value <string>("ontour") != "0"; art.Images = new List <ImageInfo>(); if (artToken.HasProperty("image")) { foreach (var img in artToken["image"]) { ImageInfoSizes size = ImageInfoSizes.Small; Enum.TryParse(img.Value <string>("size"), true, out size); art.Images.Add(new ImageInfo { Size = new ImageSize(size), Link = img.Value <string>("#text"), }); } } art.Stats = new LastFmStats(); if (artToken.HasProperty("stats")) { art.Stats.Listeners = artToken["stats"].HasProperty("listeners") ? artToken["stats"].Value <string>("listeners") : "0"; art.Stats.PlayCount = artToken["stats"].HasProperty("playcount") ? artToken["stats"].Value <string>("playcount") : "0"; } ; art.Tags = new List <string>(); if (artToken.HasProperty("tags")) { foreach (var tag in artToken["tags"]["tag"]) { art.Tags.Add(tag["name"].ToString()); } } if (artToken.HasProperty("bio")) { art.Year = int.Parse(artToken["bio"]["yearformed"].ToString()); } return(art); }
public static LastFmAlbum Parse(JObject jObject) { LastFmAlbum alb = new LastFmAlbum(); JToken data = jObject["album"]; alb.Title = data.GetStringValue("name"); alb.Artist = data.GetStringValue("artist"); alb.LastFmId = data.GetStringValue("id"); alb.Mbid = data.GetStringValue("mbid"); alb.Url = data.GetStringValue("url"); alb.Release = data.GetStringValue("releasedate"); alb.Stats = new LastFmStats { Listeners = data.GetStringValue("listeners"), PlayCount = data.GetStringValue("playcount") }; alb.Images = new List <ImageInfo>(); if (data.HasProperty("image")) { foreach (var img in data["image"]) { ImageInfoSizes size = ImageInfoSizes.Small; Enum.TryParse(img.Value <string>("size"), true, out size); alb.Images.Add(new ImageInfo { Size = new ImageSize(size), Link = img.Value <string>("#text"), }); } } alb.Tags = new List <string>(); if (data.HasProperty("toptags")) { foreach (var tag in data["toptags"]["tag"]) { alb.Tags.Add(tag["name"].ToString()); } } alb.Tracks = new List <LastFmAlbumTrack>(); if (data.HasProperty("tracks")) { foreach (var t in data["tracks"]["track"]) { int r; if (!int.TryParse(t["@attr"]["rank"].ToString(), out r)) { r = -1; } int d; if (!int.TryParse(t["duration"].ToString(), out d)) { d = 0; } alb.Tracks.Add(new LastFmAlbumTrack { Rank = r, AlbumName = alb.Title, ArtistMbid = t["artist"]["mbid"].ToString(), ArtistName = t["artist"]["name"].ToString(), Duration = d, Title = t["name"].ToString() }); } } return(alb); }