mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-07-09 03:04:24 -04:00
Merge pull request #2549 from dkanada/refactor
Refactor some provider classes
This commit is contained in:
commit
a96c0a72b8
@ -99,8 +99,8 @@ using MediaBrowser.Model.Tasks;
|
|||||||
using MediaBrowser.Model.Updates;
|
using MediaBrowser.Model.Updates;
|
||||||
using MediaBrowser.Providers.Chapters;
|
using MediaBrowser.Providers.Chapters;
|
||||||
using MediaBrowser.Providers.Manager;
|
using MediaBrowser.Providers.Manager;
|
||||||
|
using MediaBrowser.Providers.Plugins.TheTvdb;
|
||||||
using MediaBrowser.Providers.Subtitles;
|
using MediaBrowser.Providers.Subtitles;
|
||||||
using MediaBrowser.Providers.TV.TheTVDB;
|
|
||||||
using MediaBrowser.WebDashboard.Api;
|
using MediaBrowser.WebDashboard.Api;
|
||||||
using MediaBrowser.XbmcMetadata.Providers;
|
using MediaBrowser.XbmcMetadata.Providers;
|
||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
@ -666,7 +666,7 @@ namespace Emby.Server.Implementations
|
|||||||
serviceCollection.AddSingleton<ILogger>(Logger);
|
serviceCollection.AddSingleton<ILogger>(Logger);
|
||||||
|
|
||||||
serviceCollection.AddSingleton(FileSystemManager);
|
serviceCollection.AddSingleton(FileSystemManager);
|
||||||
serviceCollection.AddSingleton<TvDbClientManager>();
|
serviceCollection.AddSingleton<TvdbClientManager>();
|
||||||
|
|
||||||
HttpClient = new HttpClientManager.HttpClientManager(
|
HttpClient = new HttpClientManager.HttpClientManager(
|
||||||
ApplicationPaths,
|
ApplicationPaths,
|
||||||
|
@ -64,7 +64,7 @@ namespace MediaBrowser.Controller.Channels
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="type">The type.</param>
|
/// <param name="type">The type.</param>
|
||||||
/// <param name="cancellationToken">The cancellation token.</param>
|
/// <param name="cancellationToken">The cancellation token.</param>
|
||||||
/// <returns>Task{DynamicImageInfo}.</returns>
|
/// <returns>Task{DynamicImageResponse}.</returns>
|
||||||
Task<DynamicImageResponse> GetChannelImage(ImageType type, CancellationToken cancellationToken);
|
Task<DynamicImageResponse> GetChannelImage(ImageType type, CancellationToken cancellationToken);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -2190,13 +2190,9 @@ namespace MediaBrowser.Controller.Entities
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Do whatever refreshing is necessary when the filesystem pertaining to this item has changed.
|
/// Do whatever refreshing is necessary when the filesystem pertaining to this item has changed.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>Task.</returns>
|
|
||||||
public virtual void ChangedExternally()
|
public virtual void ChangedExternally()
|
||||||
{
|
{
|
||||||
ProviderManager.QueueRefresh(Id, new MetadataRefreshOptions(new DirectoryService(FileSystem))
|
ProviderManager.QueueRefresh(Id, new MetadataRefreshOptions(new DirectoryService(FileSystem)), RefreshPriority.High);
|
||||||
{
|
|
||||||
|
|
||||||
}, RefreshPriority.High);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -2227,7 +2223,6 @@ namespace MediaBrowser.Controller.Entities
|
|||||||
existingImage.Width = image.Width;
|
existingImage.Width = image.Width;
|
||||||
existingImage.Height = image.Height;
|
existingImage.Height = image.Height;
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var current = ImageInfos;
|
var current = ImageInfos;
|
||||||
@ -2270,7 +2265,6 @@ namespace MediaBrowser.Controller.Entities
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="type">The type.</param>
|
/// <param name="type">The type.</param>
|
||||||
/// <param name="index">The index.</param>
|
/// <param name="index">The index.</param>
|
||||||
/// <returns>Task.</returns>
|
|
||||||
public void DeleteImage(ImageType type, int index)
|
public void DeleteImage(ImageType type, int index)
|
||||||
{
|
{
|
||||||
var info = GetImageInfo(type, index);
|
var info = GetImageInfo(type, index);
|
||||||
@ -2308,7 +2302,7 @@ namespace MediaBrowser.Controller.Entities
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Validates that images within the item are still on the file system
|
/// Validates that images within the item are still on the filesystem.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool ValidateImages(IDirectoryService directoryService)
|
public bool ValidateImages(IDirectoryService directoryService)
|
||||||
{
|
{
|
||||||
@ -2602,7 +2596,7 @@ namespace MediaBrowser.Controller.Entities
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// This is called before any metadata refresh and returns true or false indicating if changes were made
|
/// This is called before any metadata refresh and returns true if changes were made.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public virtual bool BeforeMetadataRefresh(bool replaceAllMetdata)
|
public virtual bool BeforeMetadataRefresh(bool replaceAllMetdata)
|
||||||
{
|
{
|
||||||
@ -2662,36 +2656,43 @@ namespace MediaBrowser.Controller.Entities
|
|||||||
newOptions.ForceSave = true;
|
newOptions.ForceSave = true;
|
||||||
ownedItem.Genres = item.Genres;
|
ownedItem.Genres = item.Genres;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!item.Studios.SequenceEqual(ownedItem.Studios, StringComparer.Ordinal))
|
if (!item.Studios.SequenceEqual(ownedItem.Studios, StringComparer.Ordinal))
|
||||||
{
|
{
|
||||||
newOptions.ForceSave = true;
|
newOptions.ForceSave = true;
|
||||||
ownedItem.Studios = item.Studios;
|
ownedItem.Studios = item.Studios;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!item.ProductionLocations.SequenceEqual(ownedItem.ProductionLocations, StringComparer.Ordinal))
|
if (!item.ProductionLocations.SequenceEqual(ownedItem.ProductionLocations, StringComparer.Ordinal))
|
||||||
{
|
{
|
||||||
newOptions.ForceSave = true;
|
newOptions.ForceSave = true;
|
||||||
ownedItem.ProductionLocations = item.ProductionLocations;
|
ownedItem.ProductionLocations = item.ProductionLocations;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.CommunityRating != ownedItem.CommunityRating)
|
if (item.CommunityRating != ownedItem.CommunityRating)
|
||||||
{
|
{
|
||||||
ownedItem.CommunityRating = item.CommunityRating;
|
ownedItem.CommunityRating = item.CommunityRating;
|
||||||
newOptions.ForceSave = true;
|
newOptions.ForceSave = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.CriticRating != ownedItem.CriticRating)
|
if (item.CriticRating != ownedItem.CriticRating)
|
||||||
{
|
{
|
||||||
ownedItem.CriticRating = item.CriticRating;
|
ownedItem.CriticRating = item.CriticRating;
|
||||||
newOptions.ForceSave = true;
|
newOptions.ForceSave = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!string.Equals(item.Overview, ownedItem.Overview, StringComparison.Ordinal))
|
if (!string.Equals(item.Overview, ownedItem.Overview, StringComparison.Ordinal))
|
||||||
{
|
{
|
||||||
ownedItem.Overview = item.Overview;
|
ownedItem.Overview = item.Overview;
|
||||||
newOptions.ForceSave = true;
|
newOptions.ForceSave = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!string.Equals(item.OfficialRating, ownedItem.OfficialRating, StringComparison.Ordinal))
|
if (!string.Equals(item.OfficialRating, ownedItem.OfficialRating, StringComparison.Ordinal))
|
||||||
{
|
{
|
||||||
ownedItem.OfficialRating = item.OfficialRating;
|
ownedItem.OfficialRating = item.OfficialRating;
|
||||||
newOptions.ForceSave = true;
|
newOptions.ForceSave = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!string.Equals(item.CustomRating, ownedItem.CustomRating, StringComparison.Ordinal))
|
if (!string.Equals(item.CustomRating, ownedItem.CustomRating, StringComparison.Ordinal))
|
||||||
{
|
{
|
||||||
ownedItem.CustomRating = item.CustomRating;
|
ownedItem.CustomRating = item.CustomRating;
|
||||||
@ -2900,11 +2901,17 @@ namespace MediaBrowser.Controller.Entities
|
|||||||
}
|
}
|
||||||
|
|
||||||
public virtual bool IsHD => Height >= 720;
|
public virtual bool IsHD => Height >= 720;
|
||||||
|
|
||||||
public bool IsShortcut { get; set; }
|
public bool IsShortcut { get; set; }
|
||||||
|
|
||||||
public string ShortcutPath { get; set; }
|
public string ShortcutPath { get; set; }
|
||||||
|
|
||||||
public int Width { get; set; }
|
public int Width { get; set; }
|
||||||
|
|
||||||
public int Height { get; set; }
|
public int Height { get; set; }
|
||||||
|
|
||||||
public Guid[] ExtraIds { get; set; }
|
public Guid[] ExtraIds { get; set; }
|
||||||
|
|
||||||
public virtual long GetRunTimeTicksForPlayState()
|
public virtual long GetRunTimeTicksForPlayState()
|
||||||
{
|
{
|
||||||
return RunTimeTicks ?? 0;
|
return RunTimeTicks ?? 0;
|
||||||
|
@ -13,8 +13,10 @@ namespace MediaBrowser.Controller.Entities
|
|||||||
|
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public string SeriesPresentationUniqueKey { get; set; }
|
public string SeriesPresentationUniqueKey { get; set; }
|
||||||
|
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public string SeriesName { get; set; }
|
public string SeriesName { get; set; }
|
||||||
|
|
||||||
[JsonIgnore]
|
[JsonIgnore]
|
||||||
public Guid SeriesId { get; set; }
|
public Guid SeriesId { get; set; }
|
||||||
|
|
||||||
@ -22,10 +24,12 @@ namespace MediaBrowser.Controller.Entities
|
|||||||
{
|
{
|
||||||
return SeriesName;
|
return SeriesName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string FindSeriesName()
|
public string FindSeriesName()
|
||||||
{
|
{
|
||||||
return SeriesName;
|
return SeriesName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string FindSeriesPresentationUniqueKey()
|
public string FindSeriesPresentationUniqueKey()
|
||||||
{
|
{
|
||||||
return SeriesPresentationUniqueKey;
|
return SeriesPresentationUniqueKey;
|
||||||
|
@ -16,6 +16,7 @@ namespace MediaBrowser.Controller.Providers
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <value>The artist provider ids.</value>
|
/// <value>The artist provider ids.</value>
|
||||||
public Dictionary<string, string> ArtistProviderIds { get; set; }
|
public Dictionary<string, string> ArtistProviderIds { get; set; }
|
||||||
|
|
||||||
public List<SongInfo> SongInfos { get; set; }
|
public List<SongInfo> SongInfos { get; set; }
|
||||||
|
|
||||||
public AlbumInfo()
|
public AlbumInfo()
|
||||||
|
@ -2,6 +2,5 @@ namespace MediaBrowser.Controller.Providers
|
|||||||
{
|
{
|
||||||
public class BoxSetInfo : ItemLookupInfo
|
public class BoxSetInfo : ItemLookupInfo
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,6 @@ namespace MediaBrowser.Controller.Providers
|
|||||||
{
|
{
|
||||||
entries = _fileSystem.GetFileSystemEntries(path).ToArray();
|
entries = _fileSystem.GetFileSystemEntries(path).ToArray();
|
||||||
|
|
||||||
//_cache.TryAdd(path, entries);
|
|
||||||
_cache[path] = entries;
|
_cache[path] = entries;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,7 +55,6 @@ namespace MediaBrowser.Controller.Providers
|
|||||||
|
|
||||||
if (file != null && file.Exists)
|
if (file != null && file.Exists)
|
||||||
{
|
{
|
||||||
//_fileCache.TryAdd(path, file);
|
|
||||||
_fileCache[path] = file;
|
_fileCache[path] = file;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -66,7 +64,6 @@ namespace MediaBrowser.Controller.Providers
|
|||||||
}
|
}
|
||||||
|
|
||||||
return file;
|
return file;
|
||||||
//return _fileSystem.GetFileInfo(path);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<string> GetFilePaths(string path)
|
public List<string> GetFilePaths(string path)
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
using MediaBrowser.Model.Entities;
|
|
||||||
|
|
||||||
namespace MediaBrowser.Controller.Providers
|
|
||||||
{
|
|
||||||
public class DynamicImageInfo
|
|
||||||
{
|
|
||||||
public string ImageId { get; set; }
|
|
||||||
public ImageType Type { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -8,9 +8,13 @@ namespace MediaBrowser.Controller.Providers
|
|||||||
public class DynamicImageResponse
|
public class DynamicImageResponse
|
||||||
{
|
{
|
||||||
public string Path { get; set; }
|
public string Path { get; set; }
|
||||||
|
|
||||||
public MediaProtocol Protocol { get; set; }
|
public MediaProtocol Protocol { get; set; }
|
||||||
|
|
||||||
public Stream Stream { get; set; }
|
public Stream Stream { get; set; }
|
||||||
|
|
||||||
public ImageFormat Format { get; set; }
|
public ImageFormat Format { get; set; }
|
||||||
|
|
||||||
public bool HasImage { get; set; }
|
public bool HasImage { get; set; }
|
||||||
|
|
||||||
public void SetFormatFromMimeType(string mimeType)
|
public void SetFormatFromMimeType(string mimeType)
|
||||||
|
@ -10,6 +10,7 @@ namespace MediaBrowser.Controller.Providers
|
|||||||
public int? IndexNumberEnd { get; set; }
|
public int? IndexNumberEnd { get; set; }
|
||||||
|
|
||||||
public bool IsMissingEpisode { get; set; }
|
public bool IsMissingEpisode { get; set; }
|
||||||
|
|
||||||
public string SeriesDisplayOrder { get; set; }
|
public string SeriesDisplayOrder { get; set; }
|
||||||
|
|
||||||
public EpisodeInfo()
|
public EpisodeInfo()
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
using MediaBrowser.Model.Entities;
|
|
||||||
|
|
||||||
namespace MediaBrowser.Controller.Providers
|
|
||||||
{
|
|
||||||
public class ExtraInfo
|
|
||||||
{
|
|
||||||
public string Path { get; set; }
|
|
||||||
|
|
||||||
public LocationType LocationType { get; set; }
|
|
||||||
|
|
||||||
public bool IsDownloadable { get; set; }
|
|
||||||
|
|
||||||
public ExtraType ExtraType { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,9 +0,0 @@
|
|||||||
namespace MediaBrowser.Controller.Providers
|
|
||||||
{
|
|
||||||
public enum ExtraSource
|
|
||||||
{
|
|
||||||
Local = 1,
|
|
||||||
Metadata = 2,
|
|
||||||
Remote = 3
|
|
||||||
}
|
|
||||||
}
|
|
@ -13,7 +13,7 @@ namespace MediaBrowser.Controller.Providers
|
|||||||
where TItemType : BaseItem
|
where TItemType : BaseItem
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Fetches the asynchronous.
|
/// Fetches the metadata asynchronously.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="item">The item.</param>
|
/// <param name="item">The item.</param>
|
||||||
/// <param name="options">The options.</param>
|
/// <param name="options">The options.</param>
|
||||||
|
@ -6,10 +6,13 @@ namespace MediaBrowser.Controller.Providers
|
|||||||
public interface IDirectoryService
|
public interface IDirectoryService
|
||||||
{
|
{
|
||||||
FileSystemMetadata[] GetFileSystemEntries(string path);
|
FileSystemMetadata[] GetFileSystemEntries(string path);
|
||||||
|
|
||||||
List<FileSystemMetadata> GetFiles(string path);
|
List<FileSystemMetadata> GetFiles(string path);
|
||||||
|
|
||||||
FileSystemMetadata GetFile(string path);
|
FileSystemMetadata GetFile(string path);
|
||||||
|
|
||||||
List<string> GetFilePaths(string path);
|
List<string> GetFilePaths(string path);
|
||||||
|
|
||||||
List<string> GetFilePaths(string path, bool clearCache);
|
List<string> GetFilePaths(string path, bool clearCache);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,20 +0,0 @@
|
|||||||
using MediaBrowser.Controller.Entities;
|
|
||||||
|
|
||||||
namespace MediaBrowser.Controller.Providers
|
|
||||||
{
|
|
||||||
public interface IExtrasProvider
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Gets the name.
|
|
||||||
/// </summary>
|
|
||||||
/// <value>The name.</value>
|
|
||||||
string Name { get; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Supportses the specified item.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="item">The item.</param>
|
|
||||||
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
|
|
||||||
bool Supports(BaseItem item);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,7 +1,7 @@
|
|||||||
namespace MediaBrowser.Controller.Providers
|
namespace MediaBrowser.Controller.Providers
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// This is a marker interface that will cause a provider to run even if IsLocked=true
|
/// This is a marker interface that will cause a provider to run even if an item is locked from changes.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public interface IForcedProvider
|
public interface IForcedProvider
|
||||||
{
|
{
|
||||||
|
@ -3,7 +3,7 @@ using MediaBrowser.Controller.Entities;
|
|||||||
namespace MediaBrowser.Controller.Providers
|
namespace MediaBrowser.Controller.Providers
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interface IImageProvider
|
/// Interface IImageProvider.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public interface IImageProvider
|
public interface IImageProvider
|
||||||
{
|
{
|
||||||
@ -14,10 +14,10 @@ namespace MediaBrowser.Controller.Providers
|
|||||||
string Name { get; }
|
string Name { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Supportses the specified item.
|
/// Supports the specified item.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="item">The item.</param>
|
/// <param name="item">The item.</param>
|
||||||
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns>
|
/// <returns><c>true</c> if the provider supports the item.</returns>
|
||||||
bool Supports(BaseItem item);
|
bool Supports(BaseItem item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using MediaBrowser.Controller.Entities;
|
|
||||||
|
|
||||||
namespace MediaBrowser.Controller.Providers
|
|
||||||
{
|
|
||||||
public interface ILocalImageFileProvider : ILocalImageProvider
|
|
||||||
{
|
|
||||||
List<LocalImageInfo> GetImages(BaseItem item, IDirectoryService directoryService);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,9 +1,13 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using MediaBrowser.Controller.Entities;
|
||||||
|
|
||||||
namespace MediaBrowser.Controller.Providers
|
namespace MediaBrowser.Controller.Providers
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// This is just a marker interface
|
/// This is just a marker interface.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public interface ILocalImageProvider : IImageProvider
|
public interface ILocalImageProvider : IImageProvider
|
||||||
{
|
{
|
||||||
|
List<LocalImageInfo> GetImages(BaseItem item, IDirectoryService directoryService);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,8 +17,9 @@ namespace MediaBrowser.Controller.Providers
|
|||||||
/// <param name="info">The information.</param>
|
/// <param name="info">The information.</param>
|
||||||
/// <param name="directoryService">The directory service.</param>
|
/// <param name="directoryService">The directory service.</param>
|
||||||
/// <param name="cancellationToken">The cancellation token.</param>
|
/// <param name="cancellationToken">The cancellation token.</param>
|
||||||
/// <returns>Task{MetadataResult{`0}}.</returns>
|
/// <returns>Task{MetadataResult{0}}.</returns>
|
||||||
Task<MetadataResult<TItemType>> GetMetadata(ItemInfo info,
|
Task<MetadataResult<TItemType>> GetMetadata(
|
||||||
|
ItemInfo info,
|
||||||
IDirectoryService directoryService,
|
IDirectoryService directoryService,
|
||||||
CancellationToken cancellationToken);
|
CancellationToken cancellationToken);
|
||||||
}
|
}
|
||||||
|
@ -12,8 +12,9 @@ namespace MediaBrowser.Controller.Providers
|
|||||||
/// Determines whether this instance can refresh the specified item.
|
/// Determines whether this instance can refresh the specified item.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="item">The item.</param>
|
/// <param name="item">The item.</param>
|
||||||
/// <returns><c>true</c> if this instance can refresh the specified item; otherwise, <c>false</c>.</returns>
|
/// <returns><c>true</c> if this instance can refresh the specified item.</returns>
|
||||||
bool CanRefresh(BaseItem item);
|
bool CanRefresh(BaseItem item);
|
||||||
|
|
||||||
bool CanRefreshPrimary(Type type);
|
bool CanRefreshPrimary(Type type);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -2,6 +2,5 @@ namespace MediaBrowser.Controller.Providers
|
|||||||
{
|
{
|
||||||
public interface IPreRefreshProvider : ICustomMetadataProvider
|
public interface IPreRefreshProvider : ICustomMetadataProvider
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@ using MediaBrowser.Model.Providers;
|
|||||||
namespace MediaBrowser.Controller.Providers
|
namespace MediaBrowser.Controller.Providers
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interface IProviderManager
|
/// Interface IProviderManager.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public interface IProviderManager
|
public interface IProviderManager
|
||||||
{
|
{
|
||||||
@ -159,13 +159,17 @@ namespace MediaBrowser.Controller.Providers
|
|||||||
Dictionary<Guid, Guid> GetRefreshQueue();
|
Dictionary<Guid, Guid> GetRefreshQueue();
|
||||||
|
|
||||||
void OnRefreshStart(BaseItem item);
|
void OnRefreshStart(BaseItem item);
|
||||||
|
|
||||||
void OnRefreshProgress(BaseItem item, double progress);
|
void OnRefreshProgress(BaseItem item, double progress);
|
||||||
|
|
||||||
void OnRefreshComplete(BaseItem item);
|
void OnRefreshComplete(BaseItem item);
|
||||||
|
|
||||||
double? GetRefreshProgress(Guid id);
|
double? GetRefreshProgress(Guid id);
|
||||||
|
|
||||||
event EventHandler<GenericEventArgs<BaseItem>> RefreshStarted;
|
event EventHandler<GenericEventArgs<BaseItem>> RefreshStarted;
|
||||||
|
|
||||||
event EventHandler<GenericEventArgs<BaseItem>> RefreshCompleted;
|
event EventHandler<GenericEventArgs<BaseItem>> RefreshCompleted;
|
||||||
|
|
||||||
event EventHandler<GenericEventArgs<Tuple<BaseItem, double>>> RefreshProgress;
|
event EventHandler<GenericEventArgs<Tuple<BaseItem, double>>> RefreshProgress;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ using MediaBrowser.Model.Providers;
|
|||||||
namespace MediaBrowser.Controller.Providers
|
namespace MediaBrowser.Controller.Providers
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Interface IImageProvider
|
/// Interface IImageProvider.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public interface IRemoteImageProvider : IImageProvider
|
public interface IRemoteImageProvider : IImageProvider
|
||||||
{
|
{
|
||||||
|
@ -23,10 +23,15 @@ namespace MediaBrowser.Controller.Providers
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Type ItemType { get; set; }
|
public Type ItemType { get; set; }
|
||||||
|
|
||||||
public string Path { get; set; }
|
public string Path { get; set; }
|
||||||
|
|
||||||
public string ContainingFolderPath { get; set; }
|
public string ContainingFolderPath { get; set; }
|
||||||
|
|
||||||
public VideoType VideoType { get; set; }
|
public VideoType VideoType { get; set; }
|
||||||
|
|
||||||
public bool IsInMixedFolder { get; set; }
|
public bool IsInMixedFolder { get; set; }
|
||||||
|
|
||||||
public bool IsPlaceHolder { get; set; }
|
public bool IsPlaceHolder { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,29 +11,37 @@ namespace MediaBrowser.Controller.Providers
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <value>The name.</value>
|
/// <value>The name.</value>
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the metadata language.
|
/// Gets or sets the metadata language.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <value>The metadata language.</value>
|
/// <value>The metadata language.</value>
|
||||||
public string MetadataLanguage { get; set; }
|
public string MetadataLanguage { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the metadata country code.
|
/// Gets or sets the metadata country code.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <value>The metadata country code.</value>
|
/// <value>The metadata country code.</value>
|
||||||
public string MetadataCountryCode { get; set; }
|
public string MetadataCountryCode { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the provider ids.
|
/// Gets or sets the provider ids.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <value>The provider ids.</value>
|
/// <value>The provider ids.</value>
|
||||||
public Dictionary<string, string> ProviderIds { get; set; }
|
public Dictionary<string, string> ProviderIds { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the year.
|
/// Gets or sets the year.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <value>The year.</value>
|
/// <value>The year.</value>
|
||||||
public int? Year { get; set; }
|
public int? Year { get; set; }
|
||||||
|
|
||||||
public int? IndexNumber { get; set; }
|
public int? IndexNumber { get; set; }
|
||||||
|
|
||||||
public int? ParentIndexNumber { get; set; }
|
public int? ParentIndexNumber { get; set; }
|
||||||
|
|
||||||
public DateTime? PremiereDate { get; set; }
|
public DateTime? PremiereDate { get; set; }
|
||||||
|
|
||||||
public bool IsAutomated { get; set; }
|
public bool IsAutomated { get; set; }
|
||||||
|
|
||||||
public ItemLookupInfo()
|
public ItemLookupInfo()
|
||||||
|
@ -6,6 +6,7 @@ namespace MediaBrowser.Controller.Providers
|
|||||||
public class LocalImageInfo
|
public class LocalImageInfo
|
||||||
{
|
{
|
||||||
public FileSystemMetadata FileInfo { get; set; }
|
public FileSystemMetadata FileInfo { get; set; }
|
||||||
|
|
||||||
public ImageType Type { get; set; }
|
public ImageType Type { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,39 +0,0 @@
|
|||||||
namespace MediaBrowser.Controller.Providers
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Determines when a provider should execute, relative to others
|
|
||||||
/// </summary>
|
|
||||||
public enum MetadataProviderPriority
|
|
||||||
{
|
|
||||||
// Run this provider at the beginning
|
|
||||||
/// <summary>
|
|
||||||
/// The first
|
|
||||||
/// </summary>
|
|
||||||
First = 1,
|
|
||||||
|
|
||||||
// Run this provider after all first priority providers
|
|
||||||
/// <summary>
|
|
||||||
/// The second
|
|
||||||
/// </summary>
|
|
||||||
Second = 2,
|
|
||||||
|
|
||||||
// Run this provider after all second priority providers
|
|
||||||
/// <summary>
|
|
||||||
/// The third
|
|
||||||
/// </summary>
|
|
||||||
Third = 3,
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// The fourth
|
|
||||||
/// </summary>
|
|
||||||
Fourth = 4,
|
|
||||||
|
|
||||||
Fifth = 5,
|
|
||||||
|
|
||||||
// Run this provider last
|
|
||||||
/// <summary>
|
|
||||||
/// The last
|
|
||||||
/// </summary>
|
|
||||||
Last = 999
|
|
||||||
}
|
|
||||||
}
|
|
@ -13,11 +13,13 @@ namespace MediaBrowser.Controller.Providers
|
|||||||
public bool ReplaceAllMetadata { get; set; }
|
public bool ReplaceAllMetadata { get; set; }
|
||||||
|
|
||||||
public MetadataRefreshMode MetadataRefreshMode { get; set; }
|
public MetadataRefreshMode MetadataRefreshMode { get; set; }
|
||||||
|
|
||||||
public RemoteSearchResult SearchResult { get; set; }
|
public RemoteSearchResult SearchResult { get; set; }
|
||||||
|
|
||||||
public string[] RefreshPaths { get; set; }
|
public string[] RefreshPaths { get; set; }
|
||||||
|
|
||||||
public bool ForceSave { get; set; }
|
public bool ForceSave { get; set; }
|
||||||
|
|
||||||
public bool EnableRemoteContentProbe { get; set; }
|
public bool EnableRemoteContentProbe { get; set; }
|
||||||
|
|
||||||
public MetadataRefreshOptions(IDirectoryService directoryService)
|
public MetadataRefreshOptions(IDirectoryService directoryService)
|
||||||
|
@ -8,6 +8,7 @@ namespace MediaBrowser.Controller.Providers
|
|||||||
public class MetadataResult<T>
|
public class MetadataResult<T>
|
||||||
{
|
{
|
||||||
public List<LocalImageInfo> Images { get; set; }
|
public List<LocalImageInfo> Images { get; set; }
|
||||||
|
|
||||||
public List<UserItemData> UserDataList { get; set; }
|
public List<UserItemData> UserDataList { get; set; }
|
||||||
|
|
||||||
public MetadataResult()
|
public MetadataResult()
|
||||||
@ -19,10 +20,15 @@ namespace MediaBrowser.Controller.Providers
|
|||||||
public List<PersonInfo> People { get; set; }
|
public List<PersonInfo> People { get; set; }
|
||||||
|
|
||||||
public bool HasMetadata { get; set; }
|
public bool HasMetadata { get; set; }
|
||||||
|
|
||||||
public T Item { get; set; }
|
public T Item { get; set; }
|
||||||
|
|
||||||
public string ResultLanguage { get; set; }
|
public string ResultLanguage { get; set; }
|
||||||
|
|
||||||
public string Provider { get; set; }
|
public string Provider { get; set; }
|
||||||
|
|
||||||
public bool QueriedById { get; set; }
|
public bool QueriedById { get; set; }
|
||||||
|
|
||||||
public void AddPerson(PersonInfo p)
|
public void AddPerson(PersonInfo p)
|
||||||
{
|
{
|
||||||
if (People == null)
|
if (People == null)
|
||||||
|
@ -2,6 +2,5 @@ namespace MediaBrowser.Controller.Providers
|
|||||||
{
|
{
|
||||||
public class MovieInfo : ItemLookupInfo
|
public class MovieInfo : ItemLookupInfo
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,5 @@ namespace MediaBrowser.Controller.Providers
|
|||||||
{
|
{
|
||||||
public class PersonLookupInfo : ItemLookupInfo
|
public class PersonLookupInfo : ItemLookupInfo
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,14 +10,14 @@ namespace MediaBrowser.Controller.Providers
|
|||||||
public Guid ItemId { get; set; }
|
public Guid ItemId { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// If set will only search within the given provider
|
/// Will only search within the given provider when set.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string SearchProviderName { get; set; }
|
public string SearchProviderName { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets a value indicating whether [include disabled providers].
|
/// Gets or sets a value indicating whether disabled providers should be included.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <value><c>true</c> if [include disabled providers]; otherwise, <c>false</c>.</value>
|
/// <value><c>true</c> if disabled providers should be included.</value>
|
||||||
public bool IncludeDisabledProviders { get; set; }
|
public bool IncludeDisabledProviders { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ using MediaBrowser.Model.IO;
|
|||||||
|
|
||||||
namespace MediaBrowser.LocalMetadata.Images
|
namespace MediaBrowser.LocalMetadata.Images
|
||||||
{
|
{
|
||||||
public class CollectionFolderLocalImageProvider : ILocalImageFileProvider, IHasOrder
|
public class CollectionFolderLocalImageProvider : ILocalImageProvider, IHasOrder
|
||||||
{
|
{
|
||||||
private readonly IFileSystem _fileSystem;
|
private readonly IFileSystem _fileSystem;
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ using MediaBrowser.Model.IO;
|
|||||||
|
|
||||||
namespace MediaBrowser.LocalMetadata.Images
|
namespace MediaBrowser.LocalMetadata.Images
|
||||||
{
|
{
|
||||||
public class EpisodeLocalLocalImageProvider : ILocalImageFileProvider, IHasOrder
|
public class EpisodeLocalLocalImageProvider : ILocalImageProvider, IHasOrder
|
||||||
{
|
{
|
||||||
private readonly IFileSystem _fileSystem;
|
private readonly IFileSystem _fileSystem;
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ using Microsoft.Extensions.Logging;
|
|||||||
|
|
||||||
namespace MediaBrowser.LocalMetadata.Images
|
namespace MediaBrowser.LocalMetadata.Images
|
||||||
{
|
{
|
||||||
public class InternalMetadataFolderImageProvider : ILocalImageFileProvider, IHasOrder
|
public class InternalMetadataFolderImageProvider : ILocalImageProvider, IHasOrder
|
||||||
{
|
{
|
||||||
private readonly IServerConfigurationManager _config;
|
private readonly IServerConfigurationManager _config;
|
||||||
private readonly IFileSystem _fileSystem;
|
private readonly IFileSystem _fileSystem;
|
||||||
|
@ -13,7 +13,7 @@ using MediaBrowser.Model.IO;
|
|||||||
|
|
||||||
namespace MediaBrowser.LocalMetadata.Images
|
namespace MediaBrowser.LocalMetadata.Images
|
||||||
{
|
{
|
||||||
public class LocalImageProvider : ILocalImageFileProvider, IHasOrder
|
public class LocalImageProvider : ILocalImageProvider, IHasOrder
|
||||||
{
|
{
|
||||||
private readonly IFileSystem _fileSystem;
|
private readonly IFileSystem _fileSystem;
|
||||||
|
|
||||||
@ -30,7 +30,7 @@ namespace MediaBrowser.LocalMetadata.Images
|
|||||||
{
|
{
|
||||||
if (item.SupportsLocalMetadata)
|
if (item.SupportsLocalMetadata)
|
||||||
{
|
{
|
||||||
// Episode has it's own provider
|
// Episode has its own provider
|
||||||
if (item is Episode || item is Audio || item is Photo)
|
if (item is Episode || item is Audio || item is Photo)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
|
@ -44,6 +44,7 @@ namespace MediaBrowser.Model.Entities
|
|||||||
/// The box.
|
/// The box.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Box = 7,
|
Box = 7,
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The screenshot.
|
/// The screenshot.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -39,7 +39,7 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
|
|
||||||
if (!(item is Photo))
|
if (!(item is Photo))
|
||||||
{
|
{
|
||||||
var images = providers.OfType<ILocalImageFileProvider>()
|
var images = providers.OfType<ILocalImageProvider>()
|
||||||
.SelectMany(i => i.GetImages(item, directoryService))
|
.SelectMany(i => i.GetImages(item, directoryService))
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
|
@ -606,7 +606,6 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
|
|
||||||
// Run custom refresh providers if they report a change or any remote providers change
|
// Run custom refresh providers if they report a change or any remote providers change
|
||||||
return anyRemoteProvidersChanged || providersWithChanges.Contains(i);
|
return anyRemoteProvidersChanged || providersWithChanges.Contains(i);
|
||||||
|
|
||||||
}).ToList();
|
}).ToList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,10 +11,9 @@ using MediaBrowser.Model.Entities;
|
|||||||
using MediaBrowser.Model.IO;
|
using MediaBrowser.Model.IO;
|
||||||
using MediaBrowser.Model.Providers;
|
using MediaBrowser.Model.Providers;
|
||||||
using MediaBrowser.Model.Serialization;
|
using MediaBrowser.Model.Serialization;
|
||||||
using MediaBrowser.Providers.Omdb;
|
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
namespace MediaBrowser.Providers.TV.Omdb
|
namespace MediaBrowser.Providers.Plugins.Omdb
|
||||||
{
|
{
|
||||||
public class OmdbEpisodeProvider :
|
public class OmdbEpisodeProvider :
|
||||||
IRemoteMetadataProvider<Episode, EpisodeInfo>,
|
IRemoteMetadataProvider<Episode, EpisodeInfo>,
|
@ -13,7 +13,7 @@ using MediaBrowser.Model.IO;
|
|||||||
using MediaBrowser.Model.Providers;
|
using MediaBrowser.Model.Providers;
|
||||||
using MediaBrowser.Model.Serialization;
|
using MediaBrowser.Model.Serialization;
|
||||||
|
|
||||||
namespace MediaBrowser.Providers.Omdb
|
namespace MediaBrowser.Providers.Plugins.Omdb
|
||||||
{
|
{
|
||||||
public class OmdbImageProvider : IRemoteImageProvider, IHasOrder
|
public class OmdbImageProvider : IRemoteImageProvider, IHasOrder
|
||||||
{
|
{
|
@ -19,7 +19,7 @@ using MediaBrowser.Model.Providers;
|
|||||||
using MediaBrowser.Model.Serialization;
|
using MediaBrowser.Model.Serialization;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
namespace MediaBrowser.Providers.Omdb
|
namespace MediaBrowser.Providers.Plugins.Omdb
|
||||||
{
|
{
|
||||||
public class OmdbItemProvider : IRemoteMetadataProvider<Series, SeriesInfo>,
|
public class OmdbItemProvider : IRemoteMetadataProvider<Series, SeriesInfo>,
|
||||||
IRemoteMetadataProvider<Movie, MovieInfo>, IRemoteMetadataProvider<Trailer, TrailerInfo>, IHasOrder
|
IRemoteMetadataProvider<Movie, MovieInfo>, IRemoteMetadataProvider<Trailer, TrailerInfo>, IHasOrder
|
@ -16,7 +16,7 @@ using MediaBrowser.Model.Entities;
|
|||||||
using MediaBrowser.Model.IO;
|
using MediaBrowser.Model.IO;
|
||||||
using MediaBrowser.Model.Serialization;
|
using MediaBrowser.Model.Serialization;
|
||||||
|
|
||||||
namespace MediaBrowser.Providers.Omdb
|
namespace MediaBrowser.Providers.Plugins.Omdb
|
||||||
{
|
{
|
||||||
public class OmdbProvider
|
public class OmdbProvider
|
||||||
{
|
{
|
@ -10,9 +10,9 @@ using Microsoft.Extensions.Caching.Memory;
|
|||||||
using TvDbSharper;
|
using TvDbSharper;
|
||||||
using TvDbSharper.Dto;
|
using TvDbSharper.Dto;
|
||||||
|
|
||||||
namespace MediaBrowser.Providers.TV.TheTVDB
|
namespace MediaBrowser.Providers.Plugins.TheTvdb
|
||||||
{
|
{
|
||||||
public class TvDbClientManager
|
public class TvdbClientManager
|
||||||
{
|
{
|
||||||
private const string DefaultLanguage = "en";
|
private const string DefaultLanguage = "en";
|
||||||
|
|
||||||
@ -21,7 +21,7 @@ namespace MediaBrowser.Providers.TV.TheTVDB
|
|||||||
private readonly TvDbClient _tvDbClient;
|
private readonly TvDbClient _tvDbClient;
|
||||||
private DateTime _tokenCreatedAt;
|
private DateTime _tokenCreatedAt;
|
||||||
|
|
||||||
public TvDbClientManager(IMemoryCache memoryCache)
|
public TvdbClientManager(IMemoryCache memoryCache)
|
||||||
{
|
{
|
||||||
_cache = memoryCache;
|
_cache = memoryCache;
|
||||||
_tvDbClient = new TvDbClient();
|
_tvDbClient = new TvDbClient();
|
@ -12,19 +12,19 @@ using Microsoft.Extensions.Logging;
|
|||||||
using TvDbSharper;
|
using TvDbSharper;
|
||||||
using TvDbSharper.Dto;
|
using TvDbSharper.Dto;
|
||||||
|
|
||||||
namespace MediaBrowser.Providers.TV.TheTVDB
|
namespace MediaBrowser.Providers.Plugins.TheTvdb
|
||||||
{
|
{
|
||||||
public class TvdbEpisodeImageProvider : IRemoteImageProvider
|
public class TvdbEpisodeImageProvider : IRemoteImageProvider
|
||||||
{
|
{
|
||||||
private readonly IHttpClient _httpClient;
|
private readonly IHttpClient _httpClient;
|
||||||
private readonly ILogger _logger;
|
private readonly ILogger _logger;
|
||||||
private readonly TvDbClientManager _tvDbClientManager;
|
private readonly TvdbClientManager _tvdbClientManager;
|
||||||
|
|
||||||
public TvdbEpisodeImageProvider(IHttpClient httpClient, ILogger<TvdbEpisodeImageProvider> logger, TvDbClientManager tvDbClientManager)
|
public TvdbEpisodeImageProvider(IHttpClient httpClient, ILogger<TvdbEpisodeImageProvider> logger, TvdbClientManager tvdbClientManager)
|
||||||
{
|
{
|
||||||
_httpClient = httpClient;
|
_httpClient = httpClient;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_tvDbClientManager = tvDbClientManager;
|
_tvdbClientManager = tvdbClientManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Name => "TheTVDB";
|
public string Name => "TheTVDB";
|
||||||
@ -60,7 +60,7 @@ namespace MediaBrowser.Providers.TV.TheTVDB
|
|||||||
SeriesProviderIds = series.ProviderIds,
|
SeriesProviderIds = series.ProviderIds,
|
||||||
SeriesDisplayOrder = series.DisplayOrder
|
SeriesDisplayOrder = series.DisplayOrder
|
||||||
};
|
};
|
||||||
string episodeTvdbId = await _tvDbClientManager
|
string episodeTvdbId = await _tvdbClientManager
|
||||||
.GetEpisodeTvdbId(episodeInfo, language, cancellationToken).ConfigureAwait(false);
|
.GetEpisodeTvdbId(episodeInfo, language, cancellationToken).ConfigureAwait(false);
|
||||||
if (string.IsNullOrEmpty(episodeTvdbId))
|
if (string.IsNullOrEmpty(episodeTvdbId))
|
||||||
{
|
{
|
||||||
@ -73,7 +73,7 @@ namespace MediaBrowser.Providers.TV.TheTVDB
|
|||||||
}
|
}
|
||||||
|
|
||||||
var episodeResult =
|
var episodeResult =
|
||||||
await _tvDbClientManager
|
await _tvdbClientManager
|
||||||
.GetEpisodesAsync(Convert.ToInt32(episodeTvdbId), language, cancellationToken)
|
.GetEpisodesAsync(Convert.ToInt32(episodeTvdbId), language, cancellationToken)
|
||||||
.ConfigureAwait(false);
|
.ConfigureAwait(false);
|
||||||
|
|
@ -12,7 +12,7 @@ using Microsoft.Extensions.Logging;
|
|||||||
using TvDbSharper;
|
using TvDbSharper;
|
||||||
using TvDbSharper.Dto;
|
using TvDbSharper.Dto;
|
||||||
|
|
||||||
namespace MediaBrowser.Providers.TV.TheTVDB
|
namespace MediaBrowser.Providers.Plugins.TheTvdb
|
||||||
{
|
{
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -22,13 +22,13 @@ namespace MediaBrowser.Providers.TV.TheTVDB
|
|||||||
{
|
{
|
||||||
private readonly IHttpClient _httpClient;
|
private readonly IHttpClient _httpClient;
|
||||||
private readonly ILogger _logger;
|
private readonly ILogger _logger;
|
||||||
private readonly TvDbClientManager _tvDbClientManager;
|
private readonly TvdbClientManager _tvdbClientManager;
|
||||||
|
|
||||||
public TvdbEpisodeProvider(IHttpClient httpClient, ILogger<TvdbEpisodeProvider> logger, TvDbClientManager tvDbClientManager)
|
public TvdbEpisodeProvider(IHttpClient httpClient, ILogger<TvdbEpisodeProvider> logger, TvdbClientManager tvdbClientManager)
|
||||||
{
|
{
|
||||||
_httpClient = httpClient;
|
_httpClient = httpClient;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_tvDbClientManager = tvDbClientManager;
|
_tvdbClientManager = tvdbClientManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<IEnumerable<RemoteSearchResult>> GetSearchResults(EpisodeInfo searchInfo, CancellationToken cancellationToken)
|
public async Task<IEnumerable<RemoteSearchResult>> GetSearchResults(EpisodeInfo searchInfo, CancellationToken cancellationToken)
|
||||||
@ -99,7 +99,7 @@ namespace MediaBrowser.Providers.TV.TheTVDB
|
|||||||
string episodeTvdbId = null;
|
string episodeTvdbId = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
episodeTvdbId = await _tvDbClientManager
|
episodeTvdbId = await _tvdbClientManager
|
||||||
.GetEpisodeTvdbId(searchInfo, searchInfo.MetadataLanguage, cancellationToken)
|
.GetEpisodeTvdbId(searchInfo, searchInfo.MetadataLanguage, cancellationToken)
|
||||||
.ConfigureAwait(false);
|
.ConfigureAwait(false);
|
||||||
if (string.IsNullOrEmpty(episodeTvdbId))
|
if (string.IsNullOrEmpty(episodeTvdbId))
|
||||||
@ -109,7 +109,7 @@ namespace MediaBrowser.Providers.TV.TheTVDB
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
var episodeResult = await _tvDbClientManager.GetEpisodesAsync(
|
var episodeResult = await _tvdbClientManager.GetEpisodesAsync(
|
||||||
Convert.ToInt32(episodeTvdbId), searchInfo.MetadataLanguage,
|
Convert.ToInt32(episodeTvdbId), searchInfo.MetadataLanguage,
|
||||||
cancellationToken).ConfigureAwait(false);
|
cancellationToken).ConfigureAwait(false);
|
||||||
|
|
@ -11,25 +11,24 @@ using MediaBrowser.Controller.Library;
|
|||||||
using MediaBrowser.Controller.Providers;
|
using MediaBrowser.Controller.Providers;
|
||||||
using MediaBrowser.Model.Entities;
|
using MediaBrowser.Model.Entities;
|
||||||
using MediaBrowser.Model.Providers;
|
using MediaBrowser.Model.Providers;
|
||||||
using MediaBrowser.Providers.TV.TheTVDB;
|
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using TvDbSharper;
|
using TvDbSharper;
|
||||||
|
|
||||||
namespace MediaBrowser.Providers.People
|
namespace MediaBrowser.Providers.Plugins.TheTvdb
|
||||||
{
|
{
|
||||||
public class TvdbPersonImageProvider : IRemoteImageProvider, IHasOrder
|
public class TvdbPersonImageProvider : IRemoteImageProvider, IHasOrder
|
||||||
{
|
{
|
||||||
private readonly IHttpClient _httpClient;
|
private readonly IHttpClient _httpClient;
|
||||||
private readonly ILogger _logger;
|
private readonly ILogger _logger;
|
||||||
private readonly ILibraryManager _libraryManager;
|
private readonly ILibraryManager _libraryManager;
|
||||||
private readonly TvDbClientManager _tvDbClientManager;
|
private readonly TvdbClientManager _tvdbClientManager;
|
||||||
|
|
||||||
public TvdbPersonImageProvider(ILibraryManager libraryManager, IHttpClient httpClient, ILogger<TvdbPersonImageProvider> logger, TvDbClientManager tvDbClientManager)
|
public TvdbPersonImageProvider(ILibraryManager libraryManager, IHttpClient httpClient, ILogger<TvdbPersonImageProvider> logger, TvdbClientManager tvdbClientManager)
|
||||||
{
|
{
|
||||||
_libraryManager = libraryManager;
|
_libraryManager = libraryManager;
|
||||||
_httpClient = httpClient;
|
_httpClient = httpClient;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_tvDbClientManager = tvDbClientManager;
|
_tvdbClientManager = tvdbClientManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
@ -78,7 +77,7 @@ namespace MediaBrowser.Providers.People
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var actorsResult = await _tvDbClientManager
|
var actorsResult = await _tvdbClientManager
|
||||||
.GetActorsAsync(tvdbId, series.GetPreferredMetadataLanguage(), cancellationToken)
|
.GetActorsAsync(tvdbId, series.GetPreferredMetadataLanguage(), cancellationToken)
|
||||||
.ConfigureAwait(false);
|
.ConfigureAwait(false);
|
||||||
var actor = actorsResult.Data.FirstOrDefault(a =>
|
var actor = actorsResult.Data.FirstOrDefault(a =>
|
@ -14,19 +14,19 @@ using TvDbSharper;
|
|||||||
using TvDbSharper.Dto;
|
using TvDbSharper.Dto;
|
||||||
using RatingType = MediaBrowser.Model.Dto.RatingType;
|
using RatingType = MediaBrowser.Model.Dto.RatingType;
|
||||||
|
|
||||||
namespace MediaBrowser.Providers.TV.TheTVDB
|
namespace MediaBrowser.Providers.Plugins.TheTvdb
|
||||||
{
|
{
|
||||||
public class TvdbSeasonImageProvider : IRemoteImageProvider, IHasOrder
|
public class TvdbSeasonImageProvider : IRemoteImageProvider, IHasOrder
|
||||||
{
|
{
|
||||||
private readonly IHttpClient _httpClient;
|
private readonly IHttpClient _httpClient;
|
||||||
private readonly ILogger _logger;
|
private readonly ILogger _logger;
|
||||||
private readonly TvDbClientManager _tvDbClientManager;
|
private readonly TvdbClientManager _tvdbClientManager;
|
||||||
|
|
||||||
public TvdbSeasonImageProvider(IHttpClient httpClient, ILogger<TvdbSeasonImageProvider> logger, TvDbClientManager tvDbClientManager)
|
public TvdbSeasonImageProvider(IHttpClient httpClient, ILogger<TvdbSeasonImageProvider> logger, TvdbClientManager tvdbClientManager)
|
||||||
{
|
{
|
||||||
_httpClient = httpClient;
|
_httpClient = httpClient;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_tvDbClientManager = tvDbClientManager;
|
_tvdbClientManager = tvdbClientManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Name => ProviderName;
|
public string Name => ProviderName;
|
||||||
@ -73,7 +73,7 @@ namespace MediaBrowser.Providers.TV.TheTVDB
|
|||||||
};
|
};
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var imageResults = await _tvDbClientManager
|
var imageResults = await _tvdbClientManager
|
||||||
.GetImagesAsync(tvdbId, imageQuery, language, cancellationToken).ConfigureAwait(false);
|
.GetImagesAsync(tvdbId, imageQuery, language, cancellationToken).ConfigureAwait(false);
|
||||||
remoteImages.AddRange(GetImages(imageResults.Data, language));
|
remoteImages.AddRange(GetImages(imageResults.Data, language));
|
||||||
}
|
}
|
||||||
@ -89,7 +89,7 @@ namespace MediaBrowser.Providers.TV.TheTVDB
|
|||||||
private IEnumerable<RemoteImageInfo> GetImages(Image[] images, string preferredLanguage)
|
private IEnumerable<RemoteImageInfo> GetImages(Image[] images, string preferredLanguage)
|
||||||
{
|
{
|
||||||
var list = new List<RemoteImageInfo>();
|
var list = new List<RemoteImageInfo>();
|
||||||
var languages = _tvDbClientManager.GetLanguagesAsync(CancellationToken.None).Result.Data;
|
var languages = _tvdbClientManager.GetLanguagesAsync(CancellationToken.None).Result.Data;
|
||||||
foreach (Image image in images)
|
foreach (Image image in images)
|
||||||
{
|
{
|
||||||
var imageInfo = new RemoteImageInfo
|
var imageInfo = new RemoteImageInfo
|
@ -14,19 +14,19 @@ using TvDbSharper.Dto;
|
|||||||
using RatingType = MediaBrowser.Model.Dto.RatingType;
|
using RatingType = MediaBrowser.Model.Dto.RatingType;
|
||||||
using Series = MediaBrowser.Controller.Entities.TV.Series;
|
using Series = MediaBrowser.Controller.Entities.TV.Series;
|
||||||
|
|
||||||
namespace MediaBrowser.Providers.TV.TheTVDB
|
namespace MediaBrowser.Providers.Plugins.TheTvdb
|
||||||
{
|
{
|
||||||
public class TvdbSeriesImageProvider : IRemoteImageProvider, IHasOrder
|
public class TvdbSeriesImageProvider : IRemoteImageProvider, IHasOrder
|
||||||
{
|
{
|
||||||
private readonly IHttpClient _httpClient;
|
private readonly IHttpClient _httpClient;
|
||||||
private readonly ILogger _logger;
|
private readonly ILogger _logger;
|
||||||
private readonly TvDbClientManager _tvDbClientManager;
|
private readonly TvdbClientManager _tvdbClientManager;
|
||||||
|
|
||||||
public TvdbSeriesImageProvider(IHttpClient httpClient, ILogger<TvdbSeriesImageProvider> logger, TvDbClientManager tvDbClientManager)
|
public TvdbSeriesImageProvider(IHttpClient httpClient, ILogger<TvdbSeriesImageProvider> logger, TvdbClientManager tvdbClientManager)
|
||||||
{
|
{
|
||||||
_httpClient = httpClient;
|
_httpClient = httpClient;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_tvDbClientManager = tvDbClientManager;
|
_tvdbClientManager = tvdbClientManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Name => ProviderName;
|
public string Name => ProviderName;
|
||||||
@ -68,7 +68,7 @@ namespace MediaBrowser.Providers.TV.TheTVDB
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
var imageResults =
|
var imageResults =
|
||||||
await _tvDbClientManager.GetImagesAsync(tvdbId, imageQuery, language, cancellationToken)
|
await _tvdbClientManager.GetImagesAsync(tvdbId, imageQuery, language, cancellationToken)
|
||||||
.ConfigureAwait(false);
|
.ConfigureAwait(false);
|
||||||
|
|
||||||
remoteImages.AddRange(GetImages(imageResults.Data, language));
|
remoteImages.AddRange(GetImages(imageResults.Data, language));
|
||||||
@ -85,7 +85,7 @@ namespace MediaBrowser.Providers.TV.TheTVDB
|
|||||||
private IEnumerable<RemoteImageInfo> GetImages(Image[] images, string preferredLanguage)
|
private IEnumerable<RemoteImageInfo> GetImages(Image[] images, string preferredLanguage)
|
||||||
{
|
{
|
||||||
var list = new List<RemoteImageInfo>();
|
var list = new List<RemoteImageInfo>();
|
||||||
var languages = _tvDbClientManager.GetLanguagesAsync(CancellationToken.None).Result.Data;
|
var languages = _tvdbClientManager.GetLanguagesAsync(CancellationToken.None).Result.Data;
|
||||||
|
|
||||||
foreach (Image image in images)
|
foreach (Image image in images)
|
||||||
{
|
{
|
@ -17,7 +17,7 @@ using TvDbSharper;
|
|||||||
using TvDbSharper.Dto;
|
using TvDbSharper.Dto;
|
||||||
using Series = MediaBrowser.Controller.Entities.TV.Series;
|
using Series = MediaBrowser.Controller.Entities.TV.Series;
|
||||||
|
|
||||||
namespace MediaBrowser.Providers.TV.TheTVDB
|
namespace MediaBrowser.Providers.Plugins.TheTvdb
|
||||||
{
|
{
|
||||||
public class TvdbSeriesProvider : IRemoteMetadataProvider<Series, SeriesInfo>, IHasOrder
|
public class TvdbSeriesProvider : IRemoteMetadataProvider<Series, SeriesInfo>, IHasOrder
|
||||||
{
|
{
|
||||||
@ -26,16 +26,16 @@ namespace MediaBrowser.Providers.TV.TheTVDB
|
|||||||
private readonly ILogger _logger;
|
private readonly ILogger _logger;
|
||||||
private readonly ILibraryManager _libraryManager;
|
private readonly ILibraryManager _libraryManager;
|
||||||
private readonly ILocalizationManager _localizationManager;
|
private readonly ILocalizationManager _localizationManager;
|
||||||
private readonly TvDbClientManager _tvDbClientManager;
|
private readonly TvdbClientManager _tvdbClientManager;
|
||||||
|
|
||||||
public TvdbSeriesProvider(IHttpClient httpClient, ILogger<TvdbSeriesProvider> logger, ILibraryManager libraryManager, ILocalizationManager localizationManager, TvDbClientManager tvDbClientManager)
|
public TvdbSeriesProvider(IHttpClient httpClient, ILogger<TvdbSeriesProvider> logger, ILibraryManager libraryManager, ILocalizationManager localizationManager, TvdbClientManager tvdbClientManager)
|
||||||
{
|
{
|
||||||
_httpClient = httpClient;
|
_httpClient = httpClient;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_libraryManager = libraryManager;
|
_libraryManager = libraryManager;
|
||||||
_localizationManager = localizationManager;
|
_localizationManager = localizationManager;
|
||||||
Current = this;
|
Current = this;
|
||||||
_tvDbClientManager = tvDbClientManager;
|
_tvdbClientManager = tvdbClientManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<IEnumerable<RemoteSearchResult>> GetSearchResults(SeriesInfo searchInfo, CancellationToken cancellationToken)
|
public async Task<IEnumerable<RemoteSearchResult>> GetSearchResults(SeriesInfo searchInfo, CancellationToken cancellationToken)
|
||||||
@ -116,7 +116,7 @@ namespace MediaBrowser.Providers.TV.TheTVDB
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
var seriesResult =
|
var seriesResult =
|
||||||
await _tvDbClientManager
|
await _tvdbClientManager
|
||||||
.GetSeriesByIdAsync(Convert.ToInt32(tvdbId), metadataLanguage, cancellationToken)
|
.GetSeriesByIdAsync(Convert.ToInt32(tvdbId), metadataLanguage, cancellationToken)
|
||||||
.ConfigureAwait(false);
|
.ConfigureAwait(false);
|
||||||
MapSeriesToResult(result, seriesResult.Data, metadataLanguage);
|
MapSeriesToResult(result, seriesResult.Data, metadataLanguage);
|
||||||
@ -133,7 +133,7 @@ namespace MediaBrowser.Providers.TV.TheTVDB
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var actorsResult = await _tvDbClientManager
|
var actorsResult = await _tvdbClientManager
|
||||||
.GetActorsAsync(Convert.ToInt32(tvdbId), metadataLanguage, cancellationToken).ConfigureAwait(false);
|
.GetActorsAsync(Convert.ToInt32(tvdbId), metadataLanguage, cancellationToken).ConfigureAwait(false);
|
||||||
MapActorsToResult(result, actorsResult.Data);
|
MapActorsToResult(result, actorsResult.Data);
|
||||||
}
|
}
|
||||||
@ -152,12 +152,12 @@ namespace MediaBrowser.Providers.TV.TheTVDB
|
|||||||
{
|
{
|
||||||
if (string.Equals(idType, MetadataProviders.Zap2It.ToString(), StringComparison.OrdinalIgnoreCase))
|
if (string.Equals(idType, MetadataProviders.Zap2It.ToString(), StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
result = await _tvDbClientManager.GetSeriesByZap2ItIdAsync(id, language, cancellationToken)
|
result = await _tvdbClientManager.GetSeriesByZap2ItIdAsync(id, language, cancellationToken)
|
||||||
.ConfigureAwait(false);
|
.ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result = await _tvDbClientManager.GetSeriesByImdbIdAsync(id, language, cancellationToken)
|
result = await _tvdbClientManager.GetSeriesByImdbIdAsync(id, language, cancellationToken)
|
||||||
.ConfigureAwait(false);
|
.ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -223,7 +223,7 @@ namespace MediaBrowser.Providers.TV.TheTVDB
|
|||||||
TvDbResponse<SeriesSearchResult[]> result;
|
TvDbResponse<SeriesSearchResult[]> result;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
result = await _tvDbClientManager.GetSeriesByNameAsync(comparableName, language, cancellationToken)
|
result = await _tvdbClientManager.GetSeriesByNameAsync(comparableName, language, cancellationToken)
|
||||||
.ConfigureAwait(false);
|
.ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
catch (TvDbServerException e)
|
catch (TvDbServerException e)
|
||||||
@ -252,7 +252,7 @@ namespace MediaBrowser.Providers.TV.TheTVDB
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
var seriesSesult =
|
var seriesSesult =
|
||||||
await _tvDbClientManager.GetSeriesByIdAsync(seriesSearchResult.Id, language, cancellationToken)
|
await _tvdbClientManager.GetSeriesByIdAsync(seriesSearchResult.Id, language, cancellationToken)
|
||||||
.ConfigureAwait(false);
|
.ConfigureAwait(false);
|
||||||
remoteSearchResult.SetProviderId(MetadataProviders.Imdb, seriesSesult.Data.ImdbId);
|
remoteSearchResult.SetProviderId(MetadataProviders.Imdb, seriesSesult.Data.ImdbId);
|
||||||
remoteSearchResult.SetProviderId(MetadataProviders.Zap2It, seriesSesult.Data.Zap2itId);
|
remoteSearchResult.SetProviderId(MetadataProviders.Zap2It, seriesSesult.Data.Zap2itId);
|
||||||
@ -359,7 +359,7 @@ namespace MediaBrowser.Providers.TV.TheTVDB
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var episodeSummary = _tvDbClientManager
|
var episodeSummary = _tvdbClientManager
|
||||||
.GetSeriesEpisodeSummaryAsync(tvdbSeries.Id, metadataLanguage, CancellationToken.None).Result.Data;
|
.GetSeriesEpisodeSummaryAsync(tvdbSeries.Id, metadataLanguage, CancellationToken.None).Result.Data;
|
||||||
var maxSeasonNumber = episodeSummary.AiredSeasons.Select(s => Convert.ToInt32(s)).Max();
|
var maxSeasonNumber = episodeSummary.AiredSeasons.Select(s => Convert.ToInt32(s)).Max();
|
||||||
var episodeQuery = new EpisodeQuery
|
var episodeQuery = new EpisodeQuery
|
||||||
@ -367,7 +367,7 @@ namespace MediaBrowser.Providers.TV.TheTVDB
|
|||||||
AiredSeason = maxSeasonNumber
|
AiredSeason = maxSeasonNumber
|
||||||
};
|
};
|
||||||
var episodesPage =
|
var episodesPage =
|
||||||
_tvDbClientManager.GetEpisodesPageAsync(tvdbSeries.Id, episodeQuery, metadataLanguage, CancellationToken.None).Result.Data;
|
_tvdbClientManager.GetEpisodesPageAsync(tvdbSeries.Id, episodeQuery, metadataLanguage, CancellationToken.None).Result.Data;
|
||||||
result.Item.EndDate = episodesPage.Select(e =>
|
result.Item.EndDate = episodesPage.Select(e =>
|
||||||
{
|
{
|
||||||
DateTime.TryParse(e.FirstAired, out var firstAired);
|
DateTime.TryParse(e.FirstAired, out var firstAired);
|
@ -1,6 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using MediaBrowser.Model.Entities;
|
using MediaBrowser.Model.Entities;
|
||||||
namespace MediaBrowser.Providers.TV.TheTVDB
|
|
||||||
|
namespace MediaBrowser.Providers.Plugins.TheTvdb
|
||||||
{
|
{
|
||||||
public static class TvdbUtils
|
public static class TvdbUtils
|
||||||
{
|
{
|
@ -12,7 +12,7 @@ using MediaBrowser.Controller.Providers;
|
|||||||
using MediaBrowser.Model.Entities;
|
using MediaBrowser.Model.Entities;
|
||||||
using MediaBrowser.Model.Globalization;
|
using MediaBrowser.Model.Globalization;
|
||||||
using MediaBrowser.Model.IO;
|
using MediaBrowser.Model.IO;
|
||||||
using MediaBrowser.Providers.TV.TheTVDB;
|
using MediaBrowser.Providers.Plugins.TheTvdb;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
namespace MediaBrowser.Providers.TV
|
namespace MediaBrowser.Providers.TV
|
||||||
@ -26,7 +26,7 @@ namespace MediaBrowser.Providers.TV
|
|||||||
private readonly ILibraryManager _libraryManager;
|
private readonly ILibraryManager _libraryManager;
|
||||||
private readonly ILocalizationManager _localization;
|
private readonly ILocalizationManager _localization;
|
||||||
private readonly IFileSystem _fileSystem;
|
private readonly IFileSystem _fileSystem;
|
||||||
private readonly TvDbClientManager _tvDbClientManager;
|
private readonly TvdbClientManager _tvdbClientManager;
|
||||||
|
|
||||||
public MissingEpisodeProvider(
|
public MissingEpisodeProvider(
|
||||||
ILogger logger,
|
ILogger logger,
|
||||||
@ -34,14 +34,14 @@ namespace MediaBrowser.Providers.TV
|
|||||||
ILibraryManager libraryManager,
|
ILibraryManager libraryManager,
|
||||||
ILocalizationManager localization,
|
ILocalizationManager localization,
|
||||||
IFileSystem fileSystem,
|
IFileSystem fileSystem,
|
||||||
TvDbClientManager tvDbClientManager)
|
TvdbClientManager tvdbClientManager)
|
||||||
{
|
{
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_config = config;
|
_config = config;
|
||||||
_libraryManager = libraryManager;
|
_libraryManager = libraryManager;
|
||||||
_localization = localization;
|
_localization = localization;
|
||||||
_fileSystem = fileSystem;
|
_fileSystem = fileSystem;
|
||||||
_tvDbClientManager = tvDbClientManager;
|
_tvdbClientManager = tvdbClientManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<bool> Run(Series series, bool addNewItems, CancellationToken cancellationToken)
|
public async Task<bool> Run(Series series, bool addNewItems, CancellationToken cancellationToken)
|
||||||
@ -52,7 +52,7 @@ namespace MediaBrowser.Providers.TV
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
var episodes = await _tvDbClientManager.GetAllEpisodesAsync(Convert.ToInt32(tvdbId), series.GetPreferredMetadataLanguage(), cancellationToken);
|
var episodes = await _tvdbClientManager.GetAllEpisodesAsync(Convert.ToInt32(tvdbId), series.GetPreferredMetadataLanguage(), cancellationToken);
|
||||||
|
|
||||||
var episodeLookup = episodes
|
var episodeLookup = episodes
|
||||||
.Select(i =>
|
.Select(i =>
|
||||||
|
@ -9,7 +9,7 @@ using MediaBrowser.Model.Entities;
|
|||||||
using MediaBrowser.Model.Globalization;
|
using MediaBrowser.Model.Globalization;
|
||||||
using MediaBrowser.Model.IO;
|
using MediaBrowser.Model.IO;
|
||||||
using MediaBrowser.Providers.Manager;
|
using MediaBrowser.Providers.Manager;
|
||||||
using MediaBrowser.Providers.TV.TheTVDB;
|
using MediaBrowser.Providers.Plugins.TheTvdb;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
|
||||||
namespace MediaBrowser.Providers.TV
|
namespace MediaBrowser.Providers.TV
|
||||||
@ -17,7 +17,7 @@ namespace MediaBrowser.Providers.TV
|
|||||||
public class SeriesMetadataService : MetadataService<Series, SeriesInfo>
|
public class SeriesMetadataService : MetadataService<Series, SeriesInfo>
|
||||||
{
|
{
|
||||||
private readonly ILocalizationManager _localization;
|
private readonly ILocalizationManager _localization;
|
||||||
private readonly TvDbClientManager _tvDbClientManager;
|
private readonly TvdbClientManager _tvdbClientManager;
|
||||||
|
|
||||||
public SeriesMetadataService(
|
public SeriesMetadataService(
|
||||||
IServerConfigurationManager serverConfigurationManager,
|
IServerConfigurationManager serverConfigurationManager,
|
||||||
@ -26,11 +26,11 @@ namespace MediaBrowser.Providers.TV
|
|||||||
IFileSystem fileSystem,
|
IFileSystem fileSystem,
|
||||||
ILibraryManager libraryManager,
|
ILibraryManager libraryManager,
|
||||||
ILocalizationManager localization,
|
ILocalizationManager localization,
|
||||||
TvDbClientManager tvDbClientManager)
|
TvdbClientManager tvdbClientManager)
|
||||||
: base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager)
|
: base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager)
|
||||||
{
|
{
|
||||||
_localization = localization;
|
_localization = localization;
|
||||||
_tvDbClientManager = tvDbClientManager;
|
_tvdbClientManager = tvdbClientManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
@ -47,7 +47,7 @@ namespace MediaBrowser.Providers.TV
|
|||||||
LibraryManager,
|
LibraryManager,
|
||||||
_localization,
|
_localization,
|
||||||
FileSystem,
|
FileSystem,
|
||||||
_tvDbClientManager);
|
_tvdbClientManager);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using MediaBrowser.Controller.Entities.TV;
|
using MediaBrowser.Controller.Entities.TV;
|
||||||
using MediaBrowser.Controller.Providers;
|
using MediaBrowser.Controller.Providers;
|
||||||
using MediaBrowser.Model.Entities;
|
using MediaBrowser.Model.Entities;
|
||||||
using MediaBrowser.Providers.TV.TheTVDB;
|
using MediaBrowser.Providers.Plugins.TheTvdb;
|
||||||
|
|
||||||
namespace MediaBrowser.Providers.TV
|
namespace MediaBrowser.Providers.TV
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user