diff options
Diffstat (limited to 'MediaBrowser.Controller/Providers')
17 files changed, 297 insertions, 115 deletions
diff --git a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs index 5d3d9dbca..59b7cd8db 100644 --- a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs +++ b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs @@ -247,7 +247,10 @@ namespace MediaBrowser.Controller.Providers { var val = reader.ReadElementContentAsString(); - + if (!string.IsNullOrWhiteSpace(val)) + { + item.ForcedSortName = val; + } break; } @@ -479,7 +482,7 @@ namespace MediaBrowser.Controller.Providers case "Director": { - foreach (var p in SplitNames(reader.ReadElementContentAsString()).Select(v => new PersonInfo { Name = v.Trim(), Type = PersonType.Director })) + foreach (var p in SplitNames(reader.ReadElementContentAsString()).Select(v => new Entities.PersonInfo { Name = v.Trim(), Type = PersonType.Director })) { if (string.IsNullOrWhiteSpace(p.Name)) { @@ -491,7 +494,7 @@ namespace MediaBrowser.Controller.Providers } case "Writer": { - foreach (var p in SplitNames(reader.ReadElementContentAsString()).Select(v => new PersonInfo { Name = v.Trim(), Type = PersonType.Writer })) + foreach (var p in SplitNames(reader.ReadElementContentAsString()).Select(v => new Entities.PersonInfo { Name = v.Trim(), Type = PersonType.Writer })) { if (string.IsNullOrWhiteSpace(p.Name)) { @@ -516,7 +519,7 @@ namespace MediaBrowser.Controller.Providers else { // Old-style piped string - foreach (var p in SplitNames(actors).Select(v => new PersonInfo { Name = v.Trim(), Type = PersonType.Actor })) + foreach (var p in SplitNames(actors).Select(v => new Entities.PersonInfo { Name = v.Trim(), Type = PersonType.Actor })) { if (string.IsNullOrWhiteSpace(p.Name)) { @@ -530,7 +533,7 @@ namespace MediaBrowser.Controller.Providers case "GuestStars": { - foreach (var p in SplitNames(reader.ReadElementContentAsString()).Select(v => new PersonInfo { Name = v.Trim(), Type = PersonType.GuestStar })) + foreach (var p in SplitNames(reader.ReadElementContentAsString()).Select(v => new Entities.PersonInfo { Name = v.Trim(), Type = PersonType.GuestStar })) { if (string.IsNullOrWhiteSpace(p.Name)) { @@ -680,12 +683,30 @@ namespace MediaBrowser.Controller.Providers } break; } - case "MusicbrainzId": + case "MusicBrainzAlbumId": { var mbz = reader.ReadElementContentAsString(); if (!string.IsNullOrWhiteSpace(mbz)) { - item.SetProviderId(MetadataProviders.Musicbrainz, mbz); + item.SetProviderId(MetadataProviders.MusicBrainzAlbum, mbz); + } + break; + } + case "MusicBrainzAlbumArtistId": + { + var mbz = reader.ReadElementContentAsString(); + if (!string.IsNullOrWhiteSpace(mbz)) + { + item.SetProviderId(MetadataProviders.MusicBrainzAlbumArtist, mbz); + } + break; + } + case "MusicBrainzArtistId": + { + var mbz = reader.ReadElementContentAsString(); + if (!string.IsNullOrWhiteSpace(mbz)) + { + item.SetProviderId(MetadataProviders.MusicBrainzArtist, mbz); } break; } @@ -698,6 +719,33 @@ namespace MediaBrowser.Controller.Providers } break; } + case "TvRageId": + { + var id = reader.ReadElementContentAsString(); + if (!string.IsNullOrWhiteSpace(id)) + { + item.SetProviderId(MetadataProviders.TvRage, id); + } + break; + } + case "AudioDbArtistId": + { + var id = reader.ReadElementContentAsString(); + if (!string.IsNullOrWhiteSpace(id)) + { + item.SetProviderId(MetadataProviders.AudioDbArtist, id); + } + break; + } + case "AudioDbAlbumId": + { + var id = reader.ReadElementContentAsString(); + if (!string.IsNullOrWhiteSpace(id)) + { + item.SetProviderId(MetadataProviders.AudioDbAlbum, id); + } + break; + } case "RottenTomatoesId": var rtId = reader.ReadElementContentAsString(); if (!string.IsNullOrWhiteSpace(rtId)) @@ -1195,7 +1243,7 @@ namespace MediaBrowser.Controller.Providers /// </summary> /// <param name="reader">The reader.</param> /// <returns>IEnumerable{PersonInfo}.</returns> - private IEnumerable<PersonInfo> GetPersonsFromXmlNode(XmlReader reader) + private IEnumerable<Entities.PersonInfo> GetPersonsFromXmlNode(XmlReader reader) { var name = string.Empty; var type = "Actor"; // If type is not specified assume actor @@ -1257,7 +1305,7 @@ namespace MediaBrowser.Controller.Providers } } - var personInfo = new PersonInfo + var personInfo = new Entities.PersonInfo { Name = name.Trim(), Role = role, diff --git a/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs b/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs index 6818fa52b..f8580244a 100644 --- a/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs +++ b/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs @@ -40,8 +40,6 @@ namespace MediaBrowser.Controller.Providers protected static readonly Task<bool> FalseTaskResult = Task.FromResult(false); - protected static readonly SemaphoreSlim XmlParsingResourcePool = new SemaphoreSlim(4, 4); - /// <summary> /// Supportses the specified item. /// </summary> diff --git a/MediaBrowser.Controller/Providers/BaseProviderInfo.cs b/MediaBrowser.Controller/Providers/BaseProviderInfo.cs index 829dd34c8..3a33924f0 100644 --- a/MediaBrowser.Controller/Providers/BaseProviderInfo.cs +++ b/MediaBrowser.Controller/Providers/BaseProviderInfo.cs @@ -38,14 +38,14 @@ namespace MediaBrowser.Controller.Providers /// <summary> /// The success /// </summary> - Success, - /// <summary> - /// The failure - /// </summary> - Failure, + Success = 0, /// <summary> /// The completed with errors /// </summary> - CompletedWithErrors - } + CompletedWithErrors = 1, + /// <summary> + /// The failure + /// </summary> + Failure = 2 + } } diff --git a/MediaBrowser.Controller/Providers/DirectoryService.cs b/MediaBrowser.Controller/Providers/DirectoryService.cs new file mode 100644 index 000000000..e17ae76ff --- /dev/null +++ b/MediaBrowser.Controller/Providers/DirectoryService.cs @@ -0,0 +1,79 @@ +using MediaBrowser.Model.Logging; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; + +namespace MediaBrowser.Controller.Providers +{ + public interface IDirectoryService + { + List<FileSystemInfo> GetFileSystemEntries(string path); + IEnumerable<FileInfo> GetFiles(string path); + IEnumerable<DirectoryInfo> GetDirectories(string path); + FileInfo GetFile(string path); + DirectoryInfo GetDirectory(string path); + } + + public class DirectoryService : IDirectoryService + { + private readonly ILogger _logger; + + private readonly Dictionary<string, List<FileSystemInfo>> _cache = new Dictionary<string, List<FileSystemInfo>>(StringComparer.OrdinalIgnoreCase); + + public DirectoryService(ILogger logger) + { + _logger = logger; + } + + public List<FileSystemInfo> GetFileSystemEntries(string path) + { + List<FileSystemInfo> entries; + + if (!_cache.TryGetValue(path, out entries)) + { + //_logger.Debug("Getting files for " + path); + + try + { + entries = new DirectoryInfo(path).EnumerateFileSystemInfos("*", SearchOption.TopDirectoryOnly).ToList(); + } + catch (DirectoryNotFoundException) + { + entries = new List<FileSystemInfo>(); + } + + _cache.Add(path, entries); + } + + return entries; + } + + public IEnumerable<FileInfo> GetFiles(string path) + { + return GetFileSystemEntries(path).OfType<FileInfo>(); + } + + public IEnumerable<DirectoryInfo> GetDirectories(string path) + { + return GetFileSystemEntries(path).OfType<DirectoryInfo>(); + } + + public FileInfo GetFile(string path) + { + var directory = Path.GetDirectoryName(path); + var filename = Path.GetFileName(path); + + return GetFiles(directory).FirstOrDefault(i => string.Equals(i.Name, filename, StringComparison.OrdinalIgnoreCase)); + } + + + public DirectoryInfo GetDirectory(string path) + { + var directory = Path.GetDirectoryName(path); + var name = Path.GetFileName(path); + + return GetDirectories(directory).FirstOrDefault(i => string.Equals(i.Name, name, StringComparison.OrdinalIgnoreCase)); + } + } +} diff --git a/MediaBrowser.Controller/Providers/ICustomMetadataProvider.cs b/MediaBrowser.Controller/Providers/ICustomMetadataProvider.cs index de75c62e9..c98810cbc 100644 --- a/MediaBrowser.Controller/Providers/ICustomMetadataProvider.cs +++ b/MediaBrowser.Controller/Providers/ICustomMetadataProvider.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Entities; +using MediaBrowser.Controller.Library; using System.Threading; using System.Threading.Tasks; @@ -11,6 +12,6 @@ namespace MediaBrowser.Controller.Providers public interface ICustomMetadataProvider<TItemType> : IMetadataProvider<TItemType>, ICustomMetadataProvider where TItemType : IHasMetadata { - Task<ItemUpdateType> FetchAsync(TItemType item, CancellationToken cancellationToken); + Task<ItemUpdateType> FetchAsync(TItemType item, IDirectoryService directoryService, CancellationToken cancellationToken); } } diff --git a/MediaBrowser.Controller/Providers/IHasChangeMonitor.cs b/MediaBrowser.Controller/Providers/IHasChangeMonitor.cs index 41313da3d..aa0b0e3c9 100644 --- a/MediaBrowser.Controller/Providers/IHasChangeMonitor.cs +++ b/MediaBrowser.Controller/Providers/IHasChangeMonitor.cs @@ -1,4 +1,5 @@ -using System; +using MediaBrowser.Controller.Entities; +using System; namespace MediaBrowser.Controller.Providers { @@ -8,8 +9,9 @@ namespace MediaBrowser.Controller.Providers /// Determines whether the specified item has changed. /// </summary> /// <param name="item">The item.</param> + /// <param name="directoryService">The directory service.</param> /// <param name="date">The date.</param> /// <returns><c>true</c> if the specified item has changed; otherwise, <c>false</c>.</returns> - bool HasChanged(IHasMetadata item, DateTime date); + bool HasChanged(IHasMetadata item, IDirectoryService directoryService, DateTime date); } } diff --git a/MediaBrowser.Controller/Providers/IHasMetadata.cs b/MediaBrowser.Controller/Providers/IHasMetadata.cs deleted file mode 100644 index 19ab00e68..000000000 --- a/MediaBrowser.Controller/Providers/IHasMetadata.cs +++ /dev/null @@ -1,49 +0,0 @@ -using MediaBrowser.Controller.Entities; -using MediaBrowser.Model.Entities; -using System; -using System.Collections.Generic; - -namespace MediaBrowser.Controller.Providers -{ - /// <summary> - /// Interface IHasMetadata - /// </summary> - public interface IHasMetadata : IHasImages - { - /// <summary> - /// Gets the preferred metadata country code. - /// </summary> - /// <returns>System.String.</returns> - string GetPreferredMetadataCountryCode(); - - /// <summary> - /// Gets the date modified. - /// </summary> - /// <value>The date modified.</value> - DateTime DateModified { get; } - - /// <summary> - /// Gets the locked fields. - /// </summary> - /// <value>The locked fields.</value> - List<MetadataFields> LockedFields { get; } - - /// <summary> - /// Gets or sets the date last saved. - /// </summary> - /// <value>The date last saved.</value> - DateTime DateLastSaved { get; set; } - - /// <summary> - /// Determines whether [is save local metadata enabled]. - /// </summary> - /// <returns><c>true</c> if [is save local metadata enabled]; otherwise, <c>false</c>.</returns> - bool IsSaveLocalMetadataEnabled(); - - /// <summary> - /// Gets a value indicating whether this instance is in mixed folder. - /// </summary> - /// <value><c>true</c> if this instance is in mixed folder; otherwise, <c>false</c>.</value> - bool IsInMixedFolder { get; } - } -} diff --git a/MediaBrowser.Controller/Providers/ILocalImageProvider.cs b/MediaBrowser.Controller/Providers/ILocalImageProvider.cs index ed7cdc8b2..ec24e1d60 100644 --- a/MediaBrowser.Controller/Providers/ILocalImageProvider.cs +++ b/MediaBrowser.Controller/Providers/ILocalImageProvider.cs @@ -1,6 +1,7 @@ using MediaBrowser.Controller.Drawing; using MediaBrowser.Controller.Entities; using MediaBrowser.Model.Entities; +using System; using System.Collections.Generic; using System.IO; using System.Threading; @@ -15,14 +16,14 @@ namespace MediaBrowser.Controller.Providers { } - public interface IImageFileProvider : ILocalImageProvider + public interface ILocalImageFileProvider : ILocalImageProvider { - List<LocalImageInfo> GetImages(IHasImages item); + List<LocalImageInfo> GetImages(IHasImages item, IDirectoryService directoryService); } public class LocalImageInfo { - public string Path { get; set; } + public FileInfo FileInfo { get; set; } public ImageType Type { get; set; } } @@ -60,7 +61,22 @@ namespace MediaBrowser.Controller.Providers public void SetFormatFromMimeType(string mimeType) { - + if (mimeType.EndsWith("gif", StringComparison.OrdinalIgnoreCase)) + { + Format = ImageFormat.Gif; + } + else if (mimeType.EndsWith("bmp", StringComparison.OrdinalIgnoreCase)) + { + Format = ImageFormat.Bmp; + } + else if (mimeType.EndsWith("png", StringComparison.OrdinalIgnoreCase)) + { + Format = ImageFormat.Png; + } + else + { + Format = ImageFormat.Jpg; + } } } } diff --git a/MediaBrowser.Controller/Providers/ILocalMetadataProvider.cs b/MediaBrowser.Controller/Providers/ILocalMetadataProvider.cs index 91ef22b2c..a7c1e6e1b 100644 --- a/MediaBrowser.Controller/Providers/ILocalMetadataProvider.cs +++ b/MediaBrowser.Controller/Providers/ILocalMetadataProvider.cs @@ -1,4 +1,6 @@ -using System.Threading; +using MediaBrowser.Controller.Entities; +using System.Collections.Generic; +using System.Threading; using System.Threading.Tasks; namespace MediaBrowser.Controller.Providers @@ -16,7 +18,7 @@ namespace MediaBrowser.Controller.Providers /// <param name="info">The information.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task{MetadataResult{`0}}.</returns> - Task<MetadataResult<TItemType>> GetMetadata(ItemInfo info, CancellationToken cancellationToken); + Task<LocalMetadataResult<TItemType>> GetMetadata(ItemInfo info, CancellationToken cancellationToken); } public class ItemInfo @@ -25,4 +27,18 @@ namespace MediaBrowser.Controller.Providers public bool IsInMixedFolder { get; set; } } + + public class LocalMetadataResult<T> + where T : IHasMetadata + { + public bool HasMetadata { get; set; } + public T Item { get; set; } + + public List<LocalImageInfo> Images { get; set; } + + public LocalMetadataResult() + { + Images = new List<LocalImageInfo>(); + } + } } diff --git a/MediaBrowser.Controller/Providers/IMetadataProvider.cs b/MediaBrowser.Controller/Providers/IMetadataProvider.cs index 910c88e53..70bc06059 100644 --- a/MediaBrowser.Controller/Providers/IMetadataProvider.cs +++ b/MediaBrowser.Controller/Providers/IMetadataProvider.cs @@ -1,4 +1,5 @@ using System; +using MediaBrowser.Controller.Entities; namespace MediaBrowser.Controller.Providers { diff --git a/MediaBrowser.Controller/Providers/IMetadataService.cs b/MediaBrowser.Controller/Providers/IMetadataService.cs index c4314c15f..786a7147c 100644 --- a/MediaBrowser.Controller/Providers/IMetadataService.cs +++ b/MediaBrowser.Controller/Providers/IMetadataService.cs @@ -1,5 +1,6 @@ using System.Threading; using System.Threading.Tasks; +using MediaBrowser.Controller.Entities; namespace MediaBrowser.Controller.Providers { diff --git a/MediaBrowser.Controller/Providers/IProviderManager.cs b/MediaBrowser.Controller/Providers/IProviderManager.cs index 369b58256..691a5add6 100644 --- a/MediaBrowser.Controller/Providers/IProviderManager.cs +++ b/MediaBrowser.Controller/Providers/IProviderManager.cs @@ -62,18 +62,17 @@ namespace MediaBrowser.Controller.Providers /// Gets the available remote images. /// </summary> /// <param name="item">The item.</param> + /// <param name="query">The query.</param> /// <param name="cancellationToken">The cancellation token.</param> - /// <param name="providerName">Name of the provider.</param> - /// <param name="type">The type.</param> /// <returns>Task{IEnumerable{RemoteImageInfo}}.</returns> - Task<IEnumerable<RemoteImageInfo>> GetAvailableRemoteImages(IHasImages item, CancellationToken cancellationToken, string providerName = null, ImageType? type = null); + Task<IEnumerable<RemoteImageInfo>> GetAvailableRemoteImages(IHasImages item, RemoteImageQuery query, CancellationToken cancellationToken); /// <summary> /// Gets the image providers. /// </summary> /// <param name="item">The item.</param> /// <returns>IEnumerable{ImageProviderInfo}.</returns> - IEnumerable<ImageProviderInfo> GetImageProviderInfo(IHasImages item); + IEnumerable<ImageProviderInfo> GetRemoteImageProviderInfo(IHasImages item); /// <summary> /// Gets all metadata plugins. @@ -88,5 +87,12 @@ namespace MediaBrowser.Controller.Providers /// <param name="updateType">Type of the update.</param> /// <returns>Task.</returns> Task SaveMetadata(IHasMetadata item, ItemUpdateType updateType); + + /// <summary> + /// Gets the metadata options. + /// </summary> + /// <param name="item">The item.</param> + /// <returns>MetadataOptions.</returns> + MetadataOptions GetMetadataOptions(IHasImages item); } }
\ No newline at end of file diff --git a/MediaBrowser.Controller/Providers/IProviderRepository.cs b/MediaBrowser.Controller/Providers/IProviderRepository.cs index 1c0ad2cd7..3cd2c3f31 100644 --- a/MediaBrowser.Controller/Providers/IProviderRepository.cs +++ b/MediaBrowser.Controller/Providers/IProviderRepository.cs @@ -9,22 +9,6 @@ namespace MediaBrowser.Controller.Providers public interface IProviderRepository : IRepository { /// <summary> - /// Gets the provider history. - /// </summary> - /// <param name="itemId">The item identifier.</param> - /// <returns>IEnumerable{BaseProviderInfo}.</returns> - IEnumerable<BaseProviderInfo> GetProviderHistory(Guid itemId); - - /// <summary> - /// Saves the provider history. - /// </summary> - /// <param name="id">The identifier.</param> - /// <param name="history">The history.</param> - /// <param name="cancellationToken">The cancellation token.</param> - /// <returns>Task.</returns> - Task SaveProviderHistory(Guid id, IEnumerable<BaseProviderInfo> history, CancellationToken cancellationToken); - - /// <summary> /// Gets the metadata status. /// </summary> /// <param name="itemId">The item identifier.</param> diff --git a/MediaBrowser.Controller/Providers/IRemoteMetadataProvider.cs b/MediaBrowser.Controller/Providers/IRemoteMetadataProvider.cs index 6007a5af6..cbbd62557 100644 --- a/MediaBrowser.Controller/Providers/IRemoteMetadataProvider.cs +++ b/MediaBrowser.Controller/Providers/IRemoteMetadataProvider.cs @@ -1,5 +1,6 @@ using System.Threading; using System.Threading.Tasks; +using MediaBrowser.Controller.Entities; namespace MediaBrowser.Controller.Providers { @@ -7,15 +8,10 @@ namespace MediaBrowser.Controller.Providers { } - public interface IRemoteMetadataProvider<TItemType> : IMetadataProvider<TItemType>, IRemoteMetadataProvider - where TItemType : IHasMetadata + public interface IRemoteMetadataProvider<TItemType, in TLookupInfoType> : IMetadataProvider<TItemType>, IRemoteMetadataProvider + where TItemType : IHasMetadata, IHasLookupInfo<TLookupInfoType> + where TLookupInfoType : ItemLookupInfo, new() { - /// <summary> - /// Gets the metadata. - /// </summary> - /// <param name="id">The identifier.</param> - /// <param name="cancellationToken">The cancellation token.</param> - /// <returns>Task{MetadataResult{`0}}.</returns> - Task<MetadataResult<TItemType>> GetMetadata(ItemId id, CancellationToken cancellationToken); + Task<MetadataResult<TItemType>> GetMetadata(TLookupInfoType info, CancellationToken cancellationToken); } } diff --git a/MediaBrowser.Controller/Providers/ItemId.cs b/MediaBrowser.Controller/Providers/ItemLookupInfo.cs index 9be6b783c..b43654005 100644 --- a/MediaBrowser.Controller/Providers/ItemId.cs +++ b/MediaBrowser.Controller/Providers/ItemLookupInfo.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; namespace MediaBrowser.Controller.Providers { - public class ItemId : IHasProviderIds + public class ItemLookupInfo : IHasProviderIds { /// <summary> /// Gets or sets the name. @@ -34,13 +34,29 @@ namespace MediaBrowser.Controller.Providers public int? IndexNumber { get; set; } public int? ParentIndexNumber { get; set; } - public ItemId() + public ItemLookupInfo() { ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); } } - public class AlbumId : ItemId + public interface IHasLookupInfo<out TLookupInfoType> + where TLookupInfoType : ItemLookupInfo, new() + { + TLookupInfoType GetLookupInfo(); + } + + public class ArtistInfo : ItemLookupInfo + { + public List<SongInfo> SongInfos { get; set; } + + public ArtistInfo() + { + SongInfos = new List<SongInfo>(); + } + } + + public class AlbumInfo : ItemLookupInfo { /// <summary> /// Gets or sets the album artist. @@ -53,14 +69,16 @@ namespace MediaBrowser.Controller.Providers /// </summary> /// <value>The artist provider ids.</value> public Dictionary<string, string> ArtistProviderIds { get; set; } + public List<SongInfo> SongInfos { get; set; } - public AlbumId() + public AlbumInfo() { ArtistProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); + SongInfos = new List<SongInfo>(); } } - public class GameId : ItemId + public class GameInfo : ItemLookupInfo { /// <summary> /// Gets or sets the game system. @@ -69,7 +87,7 @@ namespace MediaBrowser.Controller.Providers public string GameSystem { get; set; } } - public class GameSystemId : ItemId + public class GameSystemInfo : ItemLookupInfo { /// <summary> /// Gets or sets the path. @@ -78,15 +96,62 @@ namespace MediaBrowser.Controller.Providers public string Path { get; set; } } - public class EpisodeId : ItemId + public class EpisodeInfo : ItemLookupInfo { public Dictionary<string, string> SeriesProviderIds { get; set; } public int? IndexNumberEnd { get; set; } - public EpisodeId() + public EpisodeInfo() { SeriesProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); } } + + public class SongInfo : ItemLookupInfo + { + public string AlbumArtist { get; set; } + public string Album { get; set; } + public List<string> Artists { get; set; } + } + + public class SeriesInfo : ItemLookupInfo + { + + } + + public class PersonLookupInfo : ItemLookupInfo + { + + } + + public class MovieInfo : ItemLookupInfo + { + + } + + public class BoxSetInfo : ItemLookupInfo + { + + } + + public class MusicVideoInfo : ItemLookupInfo + { + + } + + public class TrailerInfo : ItemLookupInfo + { + + } + + public class BookInfo : ItemLookupInfo + { + public string SeriesName { get; set; } + } + + public class SeasonInfo : ItemLookupInfo + { + + } } diff --git a/MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs b/MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs index 83f1a12d9..780aa6a56 100644 --- a/MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs +++ b/MediaBrowser.Controller/Providers/MetadataRefreshOptions.cs @@ -21,6 +21,7 @@ namespace MediaBrowser.Controller.Providers public class ImageRefreshOptions { public ImageRefreshMode ImageRefreshMode { get; set; } + public IDirectoryService DirectoryService { get; set; } public ImageRefreshOptions() { diff --git a/MediaBrowser.Controller/Providers/MetadataStatus.cs b/MediaBrowser.Controller/Providers/MetadataStatus.cs index 834d8ec35..1e84e5880 100644 --- a/MediaBrowser.Controller/Providers/MetadataStatus.cs +++ b/MediaBrowser.Controller/Providers/MetadataStatus.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Linq; -using MediaBrowser.Common.Extensions; namespace MediaBrowser.Controller.Providers { @@ -14,6 +13,24 @@ namespace MediaBrowser.Controller.Providers public Guid ItemId { get; set; } /// <summary> + /// Gets or sets the name of the item. + /// </summary> + /// <value>The name of the item.</value> + public string ItemName { get; set; } + + /// <summary> + /// Gets or sets the type of the item. + /// </summary> + /// <value>The type of the item.</value> + public string ItemType { get; set; } + + /// <summary> + /// Gets or sets the name of the series. + /// </summary> + /// <value>The name of the series.</value> + public string SeriesName { get; set; } + + /// <summary> /// Gets or sets the date last metadata refresh. /// </summary> /// <value>The date last metadata refresh.</value> |
