LastfmHelper.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. using MediaBrowser.Controller.Entities;
  2. using MediaBrowser.Controller.Entities.Audio;
  3. using MediaBrowser.Model.Entities;
  4. using System;
  5. using System.Linq;
  6. namespace MediaBrowser.Controller.Providers.Music
  7. {
  8. public static class LastfmHelper
  9. {
  10. public static string LocalArtistMetaFileName = "mbartist.js";
  11. public static string LocalAlbumMetaFileName = "mbalbum.js";
  12. public static void ProcessArtistData(BaseItem artist, LastfmArtist data)
  13. {
  14. var yearFormed = 0;
  15. if (data.bio != null)
  16. {
  17. Int32.TryParse(data.bio.yearformed, out yearFormed);
  18. artist.Overview = data.bio.content;
  19. if (!string.IsNullOrEmpty(data.bio.placeformed))
  20. {
  21. artist.AddProductionLocation(data.bio.placeformed);
  22. }
  23. }
  24. artist.PremiereDate = yearFormed > 0 ? new DateTime(yearFormed, 1, 1, 0, 0, 0, DateTimeKind.Utc) : (DateTime?)null;
  25. artist.ProductionYear = yearFormed;
  26. if (data.tags != null)
  27. {
  28. AddTags(artist, data.tags);
  29. }
  30. var entity = artist as Artist;
  31. if (entity != null)
  32. {
  33. entity.IsOnTour = string.Equals(data.ontour, "1");
  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. DateTime release;
  42. DateTime.TryParse(data.releasedate, out release);
  43. item.PremiereDate = release;
  44. item.ProductionYear = release.Year;
  45. if (data.toptags != null)
  46. {
  47. AddTags(item, data.toptags);
  48. }
  49. }
  50. private static void AddTags(BaseItem item, LastfmTags tags)
  51. {
  52. var itemTags = (from tag in tags.tag where !string.IsNullOrEmpty(tag.name) select tag.name).ToList();
  53. item.Tags = itemTags;
  54. }
  55. }
  56. }