mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-06-30 11:22:53 +01:00
add movie metadata support to live tv
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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;
|
||||
|
||||
43
MediaBrowser.Providers/Movies/LiveTvMovieDbProvider.cs
Normal file
43
MediaBrowser.Providers/Movies/LiveTvMovieDbProvider.cs
Normal 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; }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user