LastfmHelper.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. using MediaBrowser.Controller.Entities;
  2. using MediaBrowser.Controller.Entities.Audio;
  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.js";
  10. public static string LocalAlbumMetaFileName = "mbalbum.js";
  11. public static void ProcessArtistData(BaseItem artist, LastfmArtist data)
  12. {
  13. var yearFormed = 0;
  14. if (data.bio != null)
  15. {
  16. Int32.TryParse(data.bio.yearformed, out yearFormed);
  17. artist.Overview = data.bio.content;
  18. if (!string.IsNullOrEmpty(data.bio.placeformed))
  19. {
  20. artist.AddProductionLocation(data.bio.placeformed);
  21. }
  22. }
  23. artist.PremiereDate = yearFormed > 0 ? new DateTime(yearFormed, 1,1) : DateTime.MinValue;
  24. artist.ProductionYear = yearFormed;
  25. if (data.tags != null)
  26. {
  27. AddGenres(artist, data.tags);
  28. }
  29. var entity = artist as Artist;
  30. if (entity != null)
  31. {
  32. entity.IsOnTour = string.Equals(data.ontour, "1");
  33. }
  34. }
  35. public static void ProcessAlbumData(BaseItem item, LastfmAlbum data)
  36. {
  37. if (!string.IsNullOrWhiteSpace(data.mbid)) item.SetProviderId(MetadataProviders.Musicbrainz, data.mbid);
  38. var overview = data.wiki != null ? data.wiki.content : null;
  39. item.Overview = overview;
  40. DateTime release;
  41. DateTime.TryParse(data.releasedate, out release);
  42. item.PremiereDate = release;
  43. item.ProductionYear = release.Year;
  44. if (data.toptags != null)
  45. {
  46. AddGenres(item, data.toptags);
  47. }
  48. }
  49. private static void AddGenres(BaseItem item, LastfmTags tags)
  50. {
  51. item.Genres.Clear();
  52. foreach (var tag in tags.tag)
  53. {
  54. if (!string.IsNullOrEmpty(tag.name))
  55. {
  56. item.AddGenre(tag.name);
  57. }
  58. }
  59. }
  60. }
  61. }