aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller
diff options
context:
space:
mode:
authorThomas Gillen <thomas.gillen@googlemail.com>2014-05-05 20:53:05 +0100
committerThomas Gillen <thomas.gillen@googlemail.com>2014-05-07 22:18:24 +0100
commita14e919a8570cabdbb60eb7bb579a18290f1380f (patch)
tree23c625fa5c747bd76680c5c3eabd8f1c3869abc6 /MediaBrowser.Controller
parente45001f99cf3261c09ba296ed0e006bce769c823 (diff)
Added item identity providers and converters
Diffstat (limited to 'MediaBrowser.Controller')
-rw-r--r--MediaBrowser.Controller/MediaBrowser.Controller.csproj1
-rw-r--r--MediaBrowser.Controller/Providers/IProviderManager.cs4
-rw-r--r--MediaBrowser.Controller/Providers/ItemIdentities.cs43
3 files changed, 47 insertions, 1 deletions
diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
index 6a7557e3a..6d09fe163 100644
--- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj
+++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
@@ -194,6 +194,7 @@
<Compile Include="Security\IEncryptionManager.cs" />
<Compile Include="Subtitles\ISubtitleManager.cs" />
<Compile Include="Subtitles\ISubtitleProvider.cs" />
+ <Compile Include="Providers\ItemIdentities.cs" />
<Compile Include="Providers\ItemLookupInfo.cs" />
<Compile Include="Providers\MetadataRefreshOptions.cs" />
<Compile Include="Providers\NameParser.cs" />
diff --git a/MediaBrowser.Controller/Providers/IProviderManager.cs b/MediaBrowser.Controller/Providers/IProviderManager.cs
index 94b19498a..242a16ee9 100644
--- a/MediaBrowser.Controller/Providers/IProviderManager.cs
+++ b/MediaBrowser.Controller/Providers/IProviderManager.cs
@@ -54,11 +54,13 @@ namespace MediaBrowser.Controller.Providers
/// </summary>
/// <param name="imageProviders">The image providers.</param>
/// <param name="metadataServices">The metadata services.</param>
+ /// <param name="identityProviders">The identity providers.</param>
+ /// <param name="identityConverters">The identity converters.</param>
/// <param name="metadataProviders">The metadata providers.</param>
/// <param name="savers">The savers.</param>
/// <param name="imageSavers">The image savers.</param>
/// <param name="externalIds">The external ids.</param>
- void AddParts(IEnumerable<IImageProvider> imageProviders, IEnumerable<IMetadataService> metadataServices, IEnumerable<IMetadataProvider> metadataProviders,
+ void AddParts(IEnumerable<IImageProvider> imageProviders, IEnumerable<IMetadataService> metadataServices, IEnumerable<IItemIdentityProvider> identityProviders, IEnumerable<IItemIdentityConverter> identityConverters, IEnumerable<IMetadataProvider> metadataProviders,
IEnumerable<IMetadataSaver> savers,
IEnumerable<IImageSaver> imageSavers,
IEnumerable<IExternalId> externalIds);
diff --git a/MediaBrowser.Controller/Providers/ItemIdentities.cs b/MediaBrowser.Controller/Providers/ItemIdentities.cs
new file mode 100644
index 000000000..93d468af0
--- /dev/null
+++ b/MediaBrowser.Controller/Providers/ItemIdentities.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace MediaBrowser.Controller.Providers
+{
+ public interface IItemIdentity
+ {
+ string Type { get; }
+ }
+
+ public interface IHasIdentities<out TIdentity>
+ where TIdentity : IItemIdentity
+ {
+ IEnumerable<TIdentity> Identities { get; }
+
+ Task FindIdentities(IProviderManager providerManager, CancellationToken cancellationToken);
+ }
+
+ public interface IItemIdentityProvider : IHasOrder { }
+
+ public interface IItemIdentityProvider<in TLookupInfo, TIdentity> : IItemIdentityProvider
+ where TLookupInfo : ItemLookupInfo
+ where TIdentity : IItemIdentity
+ {
+ Task<TIdentity> FindIdentity(TLookupInfo info);
+ }
+
+ public interface IItemIdentityConverter : IHasOrder { }
+
+ public interface IItemIdentityConverter<TIdentity> : IItemIdentityConverter
+ where TIdentity : IItemIdentity
+ {
+ Task<TIdentity> Convert(TIdentity identity);
+
+ string SourceType { get; }
+
+ string ResultType { get; }
+ }
+} \ No newline at end of file