LastfmHelper.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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 = "lastfmartist.json";
  11. public static string LocalAlbumMetaFileName = "lastfmalbum.json";
  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. }
  31. public static void ProcessArtistData(MusicArtist source, Artist target)
  32. {
  33. target.PremiereDate = source.PremiereDate;
  34. target.ProductionYear = source.ProductionYear;
  35. target.Tags = source.Tags.ToList();
  36. target.Overview = source.Overview;
  37. target.ProductionLocations = source.ProductionLocations.ToList();
  38. target.Genres = source.Genres.ToList();
  39. }
  40. public static void ProcessAlbumData(BaseItem item, LastfmAlbum data)
  41. {
  42. if (!string.IsNullOrWhiteSpace(data.mbid)) item.SetProviderId(MetadataProviders.Musicbrainz, data.mbid);
  43. var overview = data.wiki != null ? data.wiki.content : null;
  44. item.Overview = overview;
  45. DateTime release;
  46. DateTime.TryParse(data.releasedate, out release);
  47. item.PremiereDate = release;
  48. item.ProductionYear = release.Year;
  49. if (data.toptags != null)
  50. {
  51. AddTags(item, data.toptags);
  52. }
  53. }
  54. private static void AddTags(BaseItem item, LastfmTags tags)
  55. {
  56. var itemTags = (from tag in tags.tag where !string.IsNullOrEmpty(tag.name) select tag.name).ToList();
  57. item.Tags = itemTags;
  58. }
  59. }
  60. }