LastfmHelper.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using MediaBrowser.Common.Extensions;
  2. using MediaBrowser.Controller.Entities;
  3. using MediaBrowser.Model.Entities;
  4. using System;
  5. namespace MediaBrowser.Controller.Providers.Music
  6. {
  7. public static class LastfmHelper
  8. {
  9. public static string LocalArtistMetaFileName = "MBArtist.json";
  10. public static string LocalAlbumMetaFileName = "MBAlbum.json";
  11. public static void ProcessArtistData(BaseItem artist, LastfmArtist data)
  12. {
  13. var overview = data.bio != null ? data.bio.content : null;
  14. artist.Overview = overview;
  15. var yearFormed = 0;
  16. try
  17. {
  18. yearFormed = Convert.ToInt32(data.bio.yearformed);
  19. }
  20. catch (FormatException)
  21. {
  22. }
  23. catch (NullReferenceException)
  24. {
  25. }
  26. catch (OverflowException)
  27. {
  28. }
  29. artist.PremiereDate = yearFormed > 0 ? new DateTime(yearFormed, 1,1) : DateTime.MinValue;
  30. artist.ProductionYear = yearFormed;
  31. if (data.tags != null)
  32. {
  33. AddGenres(artist, data.tags);
  34. }
  35. }
  36. public static void ProcessAlbumData(BaseItem item, LastfmAlbum data)
  37. {
  38. if (!string.IsNullOrWhiteSpace(data.mbid)) item.SetProviderId(MetadataProviders.Musicbrainz, data.mbid);
  39. var overview = data.wiki != null ? data.wiki.content : null;
  40. item.Overview = overview;
  41. var release = DateTime.MinValue;
  42. DateTime.TryParse(data.releasedate, out release);
  43. item.PremiereDate = release;
  44. item.ProductionYear = release.Year;
  45. if (data.toptags != null)
  46. {
  47. AddGenres(item, data.toptags);
  48. }
  49. }
  50. private static void AddGenres(BaseItem item, LastfmTags tags)
  51. {
  52. foreach (var tag in tags.tag)
  53. {
  54. item.AddGenre(tag.name);
  55. }
  56. }
  57. }
  58. }