diff options
Diffstat (limited to 'MediaBrowser.Controller/Providers/Music/LastfmHelper.cs')
| -rw-r--r-- | MediaBrowser.Controller/Providers/Music/LastfmHelper.cs | 42 |
1 files changed, 38 insertions, 4 deletions
diff --git a/MediaBrowser.Controller/Providers/Music/LastfmHelper.cs b/MediaBrowser.Controller/Providers/Music/LastfmHelper.cs index d4559b94a..101422f01 100644 --- a/MediaBrowser.Controller/Providers/Music/LastfmHelper.cs +++ b/MediaBrowser.Controller/Providers/Music/LastfmHelper.cs @@ -4,25 +4,59 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using MediaBrowser.Controller.Entities; +using MediaBrowser.Model.Entities; namespace MediaBrowser.Controller.Providers.Music { public static class LastfmHelper { public static string LocalArtistMetaFileName = "MBArtist.json"; + public static string LocalAlbumMetaFileName = "MBAlbum.json"; public static void ProcessArtistData(BaseItem artist, LastfmArtist data) { artist.Overview = data.bio != null ? data.bio.content : null; + var yearFormed = 0; + try + { + yearFormed = Convert.ToInt32(data.bio.yearformed); + } + catch (FormatException) + { + } + catch (NullReferenceException) + { + } + catch (OverflowException) + { + } + artist.PremiereDate = new DateTime(yearFormed, 1,1); if (data.tags != null) { - foreach (var tag in data.tags.tag) - { - artist.AddGenre(tag.name); - } + AddGenres(artist, data.tags); + } + } + + public static void ProcessAlbumData(BaseItem item, LastfmAlbum data) + { + if (!string.IsNullOrWhiteSpace(data.mbid)) item.SetProviderId(MetadataProviders.Musicbrainz, data.mbid); + item.Overview = data.wiki != null ? data.wiki.content : null; + var release = DateTime.MinValue; + DateTime.TryParse(data.releasedate, out release); + item.PremiereDate = release; + if (data.toptags != null) + { + AddGenres(item, data.toptags); } } + private static void AddGenres(BaseItem item, LastfmTags tags) + { + foreach (var tag in tags.tag) + { + item.AddGenre(tag.name); + } + } } } |
