aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2015-08-28 00:19:08 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2015-08-28 00:19:08 -0400
commita0c3bb03809612763f7b06d4f82d2a44a6ed4182 (patch)
tree641b7a3fdfd906d07237fc60b681864c26b040fe /MediaBrowser.Providers
parent64945eb171f691cc6de6371ad48be178eb38d5c6 (diff)
update live tv image
Diffstat (limited to 'MediaBrowser.Providers')
-rw-r--r--MediaBrowser.Providers/Folders/DefaultImageProvider.cs147
-rw-r--r--MediaBrowser.Providers/MediaBrowser.Providers.csproj1
2 files changed, 148 insertions, 0 deletions
diff --git a/MediaBrowser.Providers/Folders/DefaultImageProvider.cs b/MediaBrowser.Providers/Folders/DefaultImageProvider.cs
new file mode 100644
index 0000000000..1fbe20d7f0
--- /dev/null
+++ b/MediaBrowser.Providers/Folders/DefaultImageProvider.cs
@@ -0,0 +1,147 @@
+using MediaBrowser.Common.Net;
+using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Providers;
+using MediaBrowser.Model.Entities;
+using MediaBrowser.Model.Providers;
+using MediaBrowser.Providers.Genres;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace MediaBrowser.Providers.Folders
+{
+ public class DefaultImageProvider : IRemoteImageProvider, IHasItemChangeMonitor
+ {
+ private readonly IHttpClient _httpClient;
+
+ public DefaultImageProvider(IHttpClient httpClient)
+ {
+ _httpClient = httpClient;
+ }
+
+ public IEnumerable<ImageType> GetSupportedImages(IHasImages item)
+ {
+ return new List<ImageType>
+ {
+ ImageType.Primary,
+ ImageType.Thumb
+ };
+ }
+
+ public Task<IEnumerable<RemoteImageInfo>> GetImages(IHasImages item, CancellationToken cancellationToken)
+ {
+ var view = item as UserView;
+
+ if (view != null)
+ {
+ return GetImages(view.ViewType, cancellationToken);
+ }
+
+ var folder = (ICollectionFolder)item;
+ return GetImages(folder.CollectionType, cancellationToken);
+ }
+
+ private Task<IEnumerable<RemoteImageInfo>> GetImages(string viewType, CancellationToken cancellationToken)
+ {
+ var url = GetImageUrl(viewType);
+
+ var list = new List<RemoteImageInfo>();
+
+ if (!string.IsNullOrWhiteSpace(url))
+ {
+ list.AddRange(new List<RemoteImageInfo>{
+ new RemoteImageInfo
+ {
+ ProviderName = Name,
+ Url = url,
+ Type = ImageType.Primary
+ },
+
+ new RemoteImageInfo
+ {
+ ProviderName = Name,
+ Url = url,
+ Type = ImageType.Thumb
+ }
+ });
+ }
+
+ return Task.FromResult<IEnumerable<RemoteImageInfo>>(list);
+ }
+
+ private string GetImageUrl(string viewType)
+ {
+ const string urlPrefix = "https://raw.githubusercontent.com/MediaBrowser/Emby.Resources/master/images/folders/";
+
+ if (string.Equals(viewType, CollectionType.Books, StringComparison.OrdinalIgnoreCase))
+ {
+ //return urlPrefix + "books.png";
+ }
+ if (string.Equals(viewType, CollectionType.Games, StringComparison.OrdinalIgnoreCase))
+ {
+ //return urlPrefix + "games.png";
+ }
+ if (string.Equals(viewType, CollectionType.Music, StringComparison.OrdinalIgnoreCase))
+ {
+ //return urlPrefix + "music.png";
+ }
+ if (string.Equals(viewType, CollectionType.Photos, StringComparison.OrdinalIgnoreCase))
+ {
+ //return urlPrefix + "photos.png";
+ }
+ if (string.Equals(viewType, CollectionType.TvShows, StringComparison.OrdinalIgnoreCase))
+ {
+ //return urlPrefix + "tv.png";
+ }
+ if (string.Equals(viewType, CollectionType.Channels, StringComparison.OrdinalIgnoreCase))
+ {
+ //return urlPrefix + "channels.png";
+ }
+ if (string.Equals(viewType, CollectionType.LiveTv, StringComparison.OrdinalIgnoreCase))
+ {
+ return urlPrefix + "livetv.png";
+ }
+ if (string.Equals(viewType, CollectionType.Movies, StringComparison.OrdinalIgnoreCase))
+ {
+ //return urlPrefix + "movies.png";
+ }
+
+ return null;
+ //return urlPrefix + "generic.png";
+ }
+
+ public string Name
+ {
+ get { return "Default Image Provider"; }
+ }
+
+ public bool Supports(IHasImages item)
+ {
+ var view = item as UserView;
+
+ if (view != null)
+ {
+ return !view.UserId.HasValue;
+ }
+
+ return item is ICollectionFolder;
+ }
+
+ public Task<HttpResponseInfo> GetImageResponse(string url, CancellationToken cancellationToken)
+ {
+ return _httpClient.GetResponse(new HttpRequestOptions
+ {
+ CancellationToken = cancellationToken,
+ Url = url,
+ ResourcePool = GenreImageProvider.ImageDownloadResourcePool
+ });
+ }
+
+ public bool HasChanged(IHasMetadata item, MetadataStatus status, IDirectoryService directoryService)
+ {
+ return GetSupportedImages(item).Any(i => !item.HasImage(i));
+ }
+ }
+}
diff --git a/MediaBrowser.Providers/MediaBrowser.Providers.csproj b/MediaBrowser.Providers/MediaBrowser.Providers.csproj
index 444567afaf..1d323e567b 100644
--- a/MediaBrowser.Providers/MediaBrowser.Providers.csproj
+++ b/MediaBrowser.Providers/MediaBrowser.Providers.csproj
@@ -83,6 +83,7 @@
<Compile Include="BoxSets\MovieDbBoxSetProvider.cs" />
<Compile Include="Channels\ChannelMetadataService.cs" />
<Compile Include="Chapters\ChapterManager.cs" />
+ <Compile Include="Folders\DefaultImageProvider.cs" />
<Compile Include="Folders\FolderMetadataService.cs" />
<Compile Include="Channels\AudioChannelItemMetadataService.cs" />
<Compile Include="Folders\UserViewMetadataService.cs" />