LastfmHelper.cs 2.0 KB

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