add movie metadata support to live tv

This commit is contained in:
Luke Pulverenti
2015-03-14 16:00:32 -04:00
parent 6acfee7df6
commit b1d2841583
21 changed files with 279 additions and 59 deletions

View File

@@ -7,14 +7,16 @@ using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging;
using MediaBrowser.Providers.Manager;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
namespace MediaBrowser.Providers.LiveTv
{
public class ProgramMetadataService : MetadataService<LiveTvProgram, ItemLookupInfo>
public class ProgramMetadataService : MetadataService<LiveTvProgram, LiveTvProgramLookupInfo>
{
public ProgramMetadataService(IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IProviderRepository providerRepo, IFileSystem fileSystem, IUserDataManager userDataManager) : base(serverConfigurationManager, logger, providerManager, providerRepo, fileSystem, userDataManager)
public ProgramMetadataService(
IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager,
IProviderRepository providerRepo, IFileSystem fileSystem, IUserDataManager userDataManager)
: base(
serverConfigurationManager, logger, providerManager, providerRepo, fileSystem, userDataManager)
{
}
@@ -25,6 +27,7 @@ namespace MediaBrowser.Providers.LiveTv
/// <param name="target">The target.</param>
/// <param name="lockedFields">The locked fields.</param>
/// <param name="replaceData">if set to <c>true</c> [replace data].</param>
/// <param name="mergeMetadataSettings"></param>
protected override void MergeData(LiveTvProgram source, LiveTvProgram target, List<MetadataFields> lockedFields, bool replaceData, bool mergeMetadataSettings)
{
ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);

View File

@@ -312,7 +312,7 @@ namespace MediaBrowser.Providers.Manager
if (provider is IRemoteMetadataProvider)
{
if (!ConfigurationManager.Configuration.EnableInternetProviders)
if (!item.IsInternetMetadataEnabled())
{
return false;
}
@@ -360,7 +360,7 @@ namespace MediaBrowser.Providers.Manager
if (provider is IRemoteImageProvider)
{
if (!ConfigurationManager.Configuration.EnableInternetProviders)
if (!item.IsInternetMetadataEnabled())
{
return false;
}
@@ -515,7 +515,7 @@ namespace MediaBrowser.Providers.Manager
Type = MetadataPluginType.LocalMetadataProvider
}));
if (ConfigurationManager.Configuration.EnableInternetProviders)
if (item.IsInternetMetadataEnabled())
{
// Fetchers
list.AddRange(providers.Where(i => (i is IRemoteMetadataProvider)).Select(i => new MetadataPlugin
@@ -547,7 +547,7 @@ namespace MediaBrowser.Providers.Manager
Type = MetadataPluginType.LocalImageProvider
}));
var enableInternet = ConfigurationManager.Configuration.EnableInternetProviders;
var enableInternet = item.IsInternetMetadataEnabled();
// Fetchers
list.AddRange(imageProviders.Where(i => i is IDynamicImageProvider || (enableInternet && i is IRemoteImageProvider)).Select(i => new MetadataPlugin

View File

@@ -108,6 +108,7 @@
<Compile Include="MediaInfo\SubtitleDownloader.cs" />
<Compile Include="MediaInfo\SubtitleResolver.cs" />
<Compile Include="MediaInfo\SubtitleScheduledTask.cs" />
<Compile Include="Movies\LiveTvMovieDbProvider.cs" />
<Compile Include="Movies\MovieDbTrailerProvider.cs" />
<Compile Include="Movies\MovieExternalIds.cs" />
<Compile Include="Movies\GenericMovieDbInfo.cs" />

View File

@@ -17,7 +17,7 @@ using System.Threading.Tasks;
namespace MediaBrowser.Providers.Movies
{
public class GenericMovieDbInfo<T>
where T : Video, new()
where T : BaseItem, new()
{
private readonly ILogger _logger;
private readonly IJsonSerializer _jsonSerializer;

View File

@@ -0,0 +1,43 @@
using MediaBrowser.Common.Net;
using MediaBrowser.Controller.LiveTv;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Providers;
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
namespace MediaBrowser.Providers.Movies
{
public class LiveTvMovieDbProvider : IRemoteMetadataProvider<LiveTvProgram, LiveTvProgramLookupInfo>, IDisposable, IHasOrder
{
public Task<IEnumerable<RemoteSearchResult>> GetSearchResults(LiveTvProgramLookupInfo searchInfo, CancellationToken cancellationToken)
{
return MovieDbProvider.Current.GetMovieSearchResults(searchInfo, cancellationToken);
}
public Task<MetadataResult<LiveTvProgram>> GetMetadata(LiveTvProgramLookupInfo info, CancellationToken cancellationToken)
{
return MovieDbProvider.Current.GetItemMetadata<LiveTvProgram>(info, cancellationToken);
}
public string Name
{
get { return "LiveTvMovieDbProvider"; }
}
public Task<HttpResponseInfo> GetImageResponse(string url, CancellationToken cancellationToken)
{
return MovieDbProvider.Current.GetImageResponse(url, cancellationToken);
}
public void Dispose()
{
}
public int Order
{
get { return 1; }
}
}
}

View File

@@ -2,6 +2,7 @@
using MediaBrowser.Controller.Channels;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.LiveTv;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Channels;
using MediaBrowser.Model.Dto;
@@ -47,6 +48,13 @@ namespace MediaBrowser.Providers.Movies
return true;
}
// Supports images for tv movies
var tvProgram = item as LiveTvProgram;
if (tvProgram != null && tvProgram.IsMovie)
{
return true;
}
// Don't support local trailers
return item is Movie || item is MusicVideo;
}

View File

@@ -113,7 +113,7 @@ namespace MediaBrowser.Providers.Movies
}
public Task<MetadataResult<T>> GetItemMetadata<T>(ItemLookupInfo id, CancellationToken cancellationToken)
where T : Video, new()
where T : BaseItem, new()
{
var movieDb = new GenericMovieDbInfo<T>(_logger, _jsonSerializer, _libraryManager);

View File

@@ -3,6 +3,7 @@ using MediaBrowser.Controller.Channels;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.LiveTv;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Channels;
using MediaBrowser.Model.Entities;
@@ -108,6 +109,13 @@ namespace MediaBrowser.Providers.Omdb
}
}
// Supports images for tv movies
var tvProgram = item as LiveTvProgram;
if (tvProgram != null && tvProgram.IsMovie)
{
return true;
}
return item is Movie;
}