parent
e7d5532bee
commit
caadb4f374
@ -0,0 +1,28 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public class AlbumInfo : ItemLookupInfo
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the album artist.
|
||||||
|
/// </summary>
|
||||||
|
/// <value>The album artist.</value>
|
||||||
|
public List<string> AlbumArtists { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the artist provider ids.
|
||||||
|
/// </summary>
|
||||||
|
/// <value>The artist provider ids.</value>
|
||||||
|
public Dictionary<string, string> ArtistProviderIds { get; set; }
|
||||||
|
public List<SongInfo> SongInfos { get; set; }
|
||||||
|
|
||||||
|
public AlbumInfo()
|
||||||
|
{
|
||||||
|
ArtistProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
|
||||||
|
SongInfos = new List<SongInfo>();
|
||||||
|
AlbumArtists = new List<string>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public class ArtistInfo : ItemLookupInfo
|
||||||
|
{
|
||||||
|
public List<SongInfo> SongInfos { get; set; }
|
||||||
|
|
||||||
|
public ArtistInfo()
|
||||||
|
{
|
||||||
|
SongInfos = new List<SongInfo>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public class BookInfo : ItemLookupInfo
|
||||||
|
{
|
||||||
|
public string SeriesName { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public class BoxSetInfo : ItemLookupInfo
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
using MediaBrowser.Model.Channels;
|
||||||
|
using MediaBrowser.Model.Entities;
|
||||||
|
|
||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public class ChannelItemLookupInfo : ItemLookupInfo
|
||||||
|
{
|
||||||
|
public ChannelMediaContentType ContentType { get; set; }
|
||||||
|
public ExtraType ExtraType { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
using MediaBrowser.Model.Entities;
|
||||||
|
|
||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public class DynamicImageInfo
|
||||||
|
{
|
||||||
|
public string ImageId { get; set; }
|
||||||
|
public ImageType Type { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using MediaBrowser.Model.Drawing;
|
||||||
|
|
||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public class DynamicImageResponse
|
||||||
|
{
|
||||||
|
public string Path { get; set; }
|
||||||
|
public Stream Stream { get; set; }
|
||||||
|
public ImageFormat Format { get; set; }
|
||||||
|
public bool HasImage { get; set; }
|
||||||
|
public string InternalCacheKey { get; set; }
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public class EpisodeIdentity : IItemIdentity
|
||||||
|
{
|
||||||
|
public string Type { get; set; }
|
||||||
|
|
||||||
|
public string SeriesId { get; set; }
|
||||||
|
public int? SeasonIndex { get; set; }
|
||||||
|
public int IndexNumber { get; set; }
|
||||||
|
public int? IndexNumberEnd { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,34 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public class EpisodeInfo : ItemLookupInfo, IHasIdentities<EpisodeIdentity>
|
||||||
|
{
|
||||||
|
private List<EpisodeIdentity> _identities = new List<EpisodeIdentity>();
|
||||||
|
|
||||||
|
public Dictionary<string, string> SeriesProviderIds { get; set; }
|
||||||
|
|
||||||
|
public int? IndexNumberEnd { get; set; }
|
||||||
|
public int? AnimeSeriesIndex { get; set; }
|
||||||
|
|
||||||
|
public EpisodeInfo()
|
||||||
|
{
|
||||||
|
SeriesProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEnumerable<EpisodeIdentity> Identities
|
||||||
|
{
|
||||||
|
get { return _identities; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task FindIdentities(IProviderManager providerManager, CancellationToken cancellationToken)
|
||||||
|
{
|
||||||
|
var identifier = new ItemIdentifier<EpisodeInfo, EpisodeIdentity>();
|
||||||
|
_identities = (await identifier.FindIdentities(this, providerManager, cancellationToken)).ToList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
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; }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public enum ExtraSource
|
||||||
|
{
|
||||||
|
Local = 1,
|
||||||
|
Metadata = 2,
|
||||||
|
Remote = 3
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public class GameInfo : ItemLookupInfo
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the game system.
|
||||||
|
/// </summary>
|
||||||
|
/// <value>The game system.</value>
|
||||||
|
public string GameSystem { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public class GameSystemInfo : ItemLookupInfo
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the path.
|
||||||
|
/// </summary>
|
||||||
|
/// <value>The path.</value>
|
||||||
|
public string Path { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public interface IDirectoryService
|
||||||
|
{
|
||||||
|
IEnumerable<FileSystemInfo> GetFileSystemEntries(string path);
|
||||||
|
IEnumerable<FileSystemInfo> GetFiles(string path);
|
||||||
|
IEnumerable<FileSystemInfo> GetDirectories(string path);
|
||||||
|
IEnumerable<FileSystemInfo> GetFiles(string path, bool clearCache);
|
||||||
|
FileSystemInfo GetFile(string path);
|
||||||
|
Dictionary<string, FileSystemInfo> GetFileSystemDictionary(string path);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using MediaBrowser.Controller.Entities;
|
||||||
|
using MediaBrowser.Model.Entities;
|
||||||
|
|
||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public interface IDynamicImageProvider : IImageProvider
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the supported images.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="item">The item.</param>
|
||||||
|
/// <returns>IEnumerable{ImageType}.</returns>
|
||||||
|
IEnumerable<ImageType> GetSupportedImages(IHasImages item);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the image.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="item">The item.</param>
|
||||||
|
/// <param name="type">The type.</param>
|
||||||
|
/// <param name="cancellationToken">The cancellation token.</param>
|
||||||
|
/// <returns>Task{DynamicImageResponse}.</returns>
|
||||||
|
Task<DynamicImageResponse> GetImage(IHasImages item, ImageType type, CancellationToken cancellationToken);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public interface IHasIdentities<out TIdentity>
|
||||||
|
where TIdentity : IItemIdentity
|
||||||
|
{
|
||||||
|
IEnumerable<TIdentity> Identities { get; }
|
||||||
|
|
||||||
|
Task FindIdentities(IProviderManager providerManager, CancellationToken cancellationToken);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
using MediaBrowser.Controller.Entities;
|
||||||
|
|
||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public interface IHasItemChangeMonitor
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Determines whether the specified item has changed.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="item">The item.</param>
|
||||||
|
/// <param name="status">The status.</param>
|
||||||
|
/// <param name="directoryService">The directory service.</param>
|
||||||
|
/// <returns><c>true</c> if the specified item has changed; otherwise, <c>false</c>.</returns>
|
||||||
|
bool HasChanged(IHasMetadata item, MetadataStatus status, IDirectoryService directoryService);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public interface IHasLookupInfo<out TLookupInfoType>
|
||||||
|
where TLookupInfoType : ItemLookupInfo, new()
|
||||||
|
{
|
||||||
|
TLookupInfoType GetLookupInfo();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public interface IHasOrder
|
||||||
|
{
|
||||||
|
int Order { get; }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using MediaBrowser.Controller.Entities;
|
||||||
|
using MediaBrowser.Model.Drawing;
|
||||||
|
using MediaBrowser.Model.Entities;
|
||||||
|
|
||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public interface IImageFileSaver : IImageSaver
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the save paths.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="item">The item.</param>
|
||||||
|
/// <param name="type">The type.</param>
|
||||||
|
/// <param name="format">The format.</param>
|
||||||
|
/// <param name="index">The index.</param>
|
||||||
|
/// <returns>IEnumerable{System.String}.</returns>
|
||||||
|
IEnumerable<string> GetSavePaths(IHasImages item, ImageType type, ImageFormat format, int index);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public interface IItemIdentity
|
||||||
|
{
|
||||||
|
string Type { get; }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,4 @@
|
|||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public interface IItemIdentityConverter : IHasOrder { }
|
||||||
|
}
|
@ -0,0 +1,4 @@
|
|||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public interface IItemIdentityProvider : IHasOrder { }
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using MediaBrowser.Controller.Entities;
|
||||||
|
|
||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public interface ILocalImageFileProvider : ILocalImageProvider
|
||||||
|
{
|
||||||
|
List<LocalImageInfo> GetImages(IHasImages item, IDirectoryService directoryService);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public interface IPreRefreshProvider : ICustomMetadataProvider
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,17 @@
|
|||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using MediaBrowser.Common.Net;
|
||||||
|
|
||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public interface IRemoteSearchProvider : IMetadataProvider
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the image response.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="url">The URL.</param>
|
||||||
|
/// <param name="cancellationToken">The cancellation token.</param>
|
||||||
|
/// <returns>Task{HttpResponseInfo}.</returns>
|
||||||
|
Task<HttpResponseInfo> GetImageResponse(string url, CancellationToken cancellationToken);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public interface ISeriesOrderProvider
|
||||||
|
{
|
||||||
|
string OrderType { get; }
|
||||||
|
Task<int?> FindSeriesIndex(string seriesName);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public enum ImageRefreshMode
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The none
|
||||||
|
/// </summary>
|
||||||
|
None = 0,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The default
|
||||||
|
/// </summary>
|
||||||
|
Default = 1,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Existing images will be validated
|
||||||
|
/// </summary>
|
||||||
|
ValidationOnly = 2,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// All providers will be executed to search for new metadata
|
||||||
|
/// </summary>
|
||||||
|
FullRefresh = 3
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,29 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using MediaBrowser.Model.Entities;
|
||||||
|
|
||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public class ImageRefreshOptions
|
||||||
|
{
|
||||||
|
public ImageRefreshMode ImageRefreshMode { get; set; }
|
||||||
|
public IDirectoryService DirectoryService { get; private set; }
|
||||||
|
|
||||||
|
public bool ReplaceAllImages { get; set; }
|
||||||
|
|
||||||
|
public List<ImageType> ReplaceImages { get; set; }
|
||||||
|
|
||||||
|
public ImageRefreshOptions(IDirectoryService directoryService)
|
||||||
|
{
|
||||||
|
ImageRefreshMode = ImageRefreshMode.Default;
|
||||||
|
DirectoryService = directoryService;
|
||||||
|
|
||||||
|
ReplaceImages = new List<ImageType>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsReplacingImage(ImageType type)
|
||||||
|
{
|
||||||
|
return ImageRefreshMode == ImageRefreshMode.FullRefresh &&
|
||||||
|
(ReplaceAllImages || ReplaceImages.Contains(type));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public class ItemInfo
|
||||||
|
{
|
||||||
|
public string Path { get; set; }
|
||||||
|
|
||||||
|
public bool IsInMixedFolder { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
using System.IO;
|
||||||
|
using MediaBrowser.Model.Entities;
|
||||||
|
|
||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public class LocalImageInfo
|
||||||
|
{
|
||||||
|
public FileSystemInfo FileInfo { get; set; }
|
||||||
|
public ImageType Type { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,24 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using MediaBrowser.Controller.Entities;
|
||||||
|
using MediaBrowser.Model.Entities;
|
||||||
|
|
||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public class LocalMetadataResult<T>
|
||||||
|
where T : IHasMetadata
|
||||||
|
{
|
||||||
|
public bool HasMetadata { get; set; }
|
||||||
|
public T Item { get; set; }
|
||||||
|
|
||||||
|
public List<LocalImageInfo> Images { get; set; }
|
||||||
|
public List<ChapterInfo> Chapters { get; set; }
|
||||||
|
public List<UserItemData> UserDataLIst { get; set; }
|
||||||
|
|
||||||
|
public LocalMetadataResult()
|
||||||
|
{
|
||||||
|
Images = new List<LocalImageInfo>();
|
||||||
|
Chapters = new List<ChapterInfo>();
|
||||||
|
UserDataLIst = new List<UserItemData>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public enum MetadataRefreshMode
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The none
|
||||||
|
/// </summary>
|
||||||
|
None = 0,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The validation only
|
||||||
|
/// </summary>
|
||||||
|
ValidationOnly = 1,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Providers will be executed based on default rules
|
||||||
|
/// </summary>
|
||||||
|
Default = 2,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// All providers will be executed to search for new metadata
|
||||||
|
/// </summary>
|
||||||
|
FullRefresh = 3
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public class MetadataResult<T>
|
||||||
|
{
|
||||||
|
public bool HasMetadata { get; set; }
|
||||||
|
public T Item { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public class MovieInfo : ItemLookupInfo
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public class MusicVideoInfo : ItemLookupInfo
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public class PersonLookupInfo : ItemLookupInfo
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public class RemoteSearchQuery<T>
|
||||||
|
where T : ItemLookupInfo
|
||||||
|
{
|
||||||
|
public T SearchInfo { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// If set will only search within the given provider
|
||||||
|
/// </summary>
|
||||||
|
public string SearchProviderName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets a value indicating whether [include disabled providers].
|
||||||
|
/// </summary>
|
||||||
|
/// <value><c>true</c> if [include disabled providers]; otherwise, <c>false</c>.</value>
|
||||||
|
public bool IncludeDisabledProviders { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public class SeasonIdentity : IItemIdentity
|
||||||
|
{
|
||||||
|
public string Type { get; set; }
|
||||||
|
|
||||||
|
public string SeriesId { get; set; }
|
||||||
|
|
||||||
|
public int SeasonIndex { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,32 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public class SeasonInfo : ItemLookupInfo, IHasIdentities<SeasonIdentity>
|
||||||
|
{
|
||||||
|
private List<SeasonIdentity> _identities = new List<SeasonIdentity>();
|
||||||
|
|
||||||
|
public Dictionary<string, string> SeriesProviderIds { get; set; }
|
||||||
|
public int? AnimeSeriesIndex { get; set; }
|
||||||
|
|
||||||
|
public SeasonInfo()
|
||||||
|
{
|
||||||
|
SeriesProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
|
||||||
|
}
|
||||||
|
|
||||||
|
public IEnumerable<SeasonIdentity> Identities
|
||||||
|
{
|
||||||
|
get { return _identities; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task FindIdentities(IProviderManager providerManager, CancellationToken cancellationToken)
|
||||||
|
{
|
||||||
|
var identifier = new ItemIdentifier<SeasonInfo, SeasonIdentity>();
|
||||||
|
_identities = (await identifier.FindIdentities(this, providerManager, cancellationToken)).ToList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public class SeriesIdentity : IItemIdentity
|
||||||
|
{
|
||||||
|
public string Type { get; set; }
|
||||||
|
|
||||||
|
public string Id { get; set; }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public class SeriesInfo : ItemLookupInfo, IHasIdentities<SeriesIdentity>
|
||||||
|
{
|
||||||
|
private List<SeriesIdentity> _identities = new List<SeriesIdentity>();
|
||||||
|
|
||||||
|
public int? AnimeSeriesIndex { get; set; }
|
||||||
|
|
||||||
|
public IEnumerable<SeriesIdentity> Identities
|
||||||
|
{
|
||||||
|
get { return _identities; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task FindIdentities(IProviderManager providerManager, CancellationToken cancellationToken)
|
||||||
|
{
|
||||||
|
var identifier = new ItemIdentifier<SeriesInfo, SeriesIdentity>();
|
||||||
|
_identities = (await identifier.FindIdentities(this, providerManager, cancellationToken)).ToList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public static class SeriesOrderTypes
|
||||||
|
{
|
||||||
|
public const string Anime = "Anime";
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,17 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public class SongInfo : ItemLookupInfo
|
||||||
|
{
|
||||||
|
public List<string> AlbumArtists { get; set; }
|
||||||
|
public string Album { get; set; }
|
||||||
|
public List<string> Artists { get; set; }
|
||||||
|
|
||||||
|
public SongInfo()
|
||||||
|
{
|
||||||
|
Artists = new List<string>();
|
||||||
|
AlbumArtists = new List<string>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
namespace MediaBrowser.Controller.Providers
|
||||||
|
{
|
||||||
|
public class TrailerInfo : ItemLookupInfo
|
||||||
|
{
|
||||||
|
public bool IsLocalTrailer { get; set; }
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in new issue