MusicDynamicImageProvider.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. using MediaBrowser.Common.IO;
  2. using MediaBrowser.Controller.Entities;
  3. using MediaBrowser.Controller.Library;
  4. using MediaBrowser.Controller.Providers;
  5. using MediaBrowser.Model.Entities;
  6. using MediaBrowser.Server.Implementations.Photos;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Linq;
  10. using System.Threading.Tasks;
  11. namespace MediaBrowser.Server.Implementations.Music
  12. {
  13. public class MusicDynamicImageProvider : BaseDynamicImageProvider<UserView>, ICustomMetadataProvider<UserView>
  14. {
  15. private readonly IUserManager _userManager;
  16. public MusicDynamicImageProvider(IFileSystem fileSystem, IProviderManager providerManager, IUserManager userManager)
  17. : base(fileSystem, providerManager)
  18. {
  19. _userManager = userManager;
  20. }
  21. protected override async Task<List<BaseItem>> GetItemsWithImages(IHasImages item)
  22. {
  23. var view = (UserView)item;
  24. if (!view.UserId.HasValue)
  25. {
  26. return new List<BaseItem>();
  27. }
  28. var result = await view.GetItems(new InternalItemsQuery
  29. {
  30. User = _userManager.GetUserById(view.UserId.Value)
  31. }).ConfigureAwait(false);
  32. return GetFinalItems(result.Items.Where(i => i.HasImage(ImageType.Primary)).ToList());
  33. }
  34. protected override bool Supports(IHasImages item)
  35. {
  36. var view = item as UserView;
  37. if (view != null && view.UserId.HasValue)
  38. {
  39. var supported = new[]
  40. {
  41. SpecialFolder.TvFavoriteEpisodes,
  42. SpecialFolder.TvFavoriteSeries,
  43. SpecialFolder.TvGenres,
  44. SpecialFolder.TvLatest,
  45. SpecialFolder.TvNextUp,
  46. SpecialFolder.TvResume,
  47. SpecialFolder.TvShowSeries,
  48. SpecialFolder.MovieCollections,
  49. SpecialFolder.MovieFavorites,
  50. SpecialFolder.MovieGenres,
  51. SpecialFolder.MovieLatest,
  52. SpecialFolder.MovieMovies,
  53. SpecialFolder.MovieResume,
  54. SpecialFolder.GameFavorites,
  55. SpecialFolder.GameGenres,
  56. SpecialFolder.GameSystems,
  57. SpecialFolder.LatestGames,
  58. SpecialFolder.RecentlyPlayedGames,
  59. SpecialFolder.MusicArtists,
  60. SpecialFolder.MusicAlbumArtists,
  61. SpecialFolder.MusicAlbums,
  62. SpecialFolder.MusicGenres,
  63. SpecialFolder.MusicLatest,
  64. SpecialFolder.MusicSongs,
  65. SpecialFolder.MusicFavorites,
  66. SpecialFolder.MusicFavoriteArtists,
  67. SpecialFolder.MusicFavoriteAlbums,
  68. SpecialFolder.MusicFavoriteSongs
  69. };
  70. return supported.Contains(view.ViewType, StringComparer.OrdinalIgnoreCase) &&
  71. _userManager.GetUserById(view.UserId.Value) != null;
  72. }
  73. return false;
  74. }
  75. }
  76. }