aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-05-06 22:28:19 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-05-06 22:28:19 -0400
commit0d025f7fb620bf2a24ca9aa4e5994f132e02e7c0 (patch)
tree76137f5f868ed81725d29bbdc6ac0e3b57c304d8 /MediaBrowser.Controller
parente1dd361c7bf05af49d9210ab679e85fa00870990 (diff)
beginning remote subtitle downloading
Diffstat (limited to 'MediaBrowser.Controller')
-rw-r--r--MediaBrowser.Controller/MediaBrowser.Controller.csproj3
-rw-r--r--MediaBrowser.Controller/Subtitles/ISubtitleManager.cs50
-rw-r--r--MediaBrowser.Controller/Subtitles/ISubtitleProvider.cs (renamed from MediaBrowser.Controller/Providers/ISubtitleProvider.cs)21
3 files changed, 67 insertions, 7 deletions
diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
index 5e259359f..6a3709dda 100644
--- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj
+++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
@@ -191,7 +191,8 @@
<Compile Include="Providers\IMetadataProvider.cs" />
<Compile Include="Providers\IMetadataService.cs" />
<Compile Include="Providers\IRemoteMetadataProvider.cs" />
- <Compile Include="Providers\ISubtitleProvider.cs" />
+ <Compile Include="Subtitles\ISubtitleManager.cs" />
+ <Compile Include="Subtitles\ISubtitleProvider.cs" />
<Compile Include="Providers\ItemLookupInfo.cs" />
<Compile Include="Providers\MetadataRefreshOptions.cs" />
<Compile Include="Providers\NameParser.cs" />
diff --git a/MediaBrowser.Controller/Subtitles/ISubtitleManager.cs b/MediaBrowser.Controller/Subtitles/ISubtitleManager.cs
new file mode 100644
index 000000000..8b0ef223c
--- /dev/null
+++ b/MediaBrowser.Controller/Subtitles/ISubtitleManager.cs
@@ -0,0 +1,50 @@
+using MediaBrowser.Controller.Entities;
+using MediaBrowser.Model.Providers;
+using System.Collections.Generic;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace MediaBrowser.Controller.Subtitles
+{
+ public interface ISubtitleManager
+ {
+ /// <summary>
+ /// Adds the parts.
+ /// </summary>
+ /// <param name="subtitleProviders">The subtitle providers.</param>
+ void AddParts(IEnumerable<ISubtitleProvider> subtitleProviders);
+
+ /// <summary>
+ /// Searches the subtitles.
+ /// </summary>
+ /// <param name="video">The video.</param>
+ /// <param name="language">The language.</param>
+ /// <param name="cancellationToken">The cancellation token.</param>
+ /// <returns>Task{IEnumerable{RemoteSubtitleInfo}}.</returns>
+ Task<IEnumerable<RemoteSubtitleInfo>> SearchSubtitles(Video video,
+ string language,
+ CancellationToken cancellationToken);
+
+ /// <summary>
+ /// Searches the subtitles.
+ /// </summary>
+ /// <param name="request">The request.</param>
+ /// <param name="cancellationToken">The cancellation token.</param>
+ /// <returns>Task{IEnumerable{RemoteSubtitleInfo}}.</returns>
+ Task<IEnumerable<RemoteSubtitleInfo>> SearchSubtitles(SubtitleSearchRequest request,
+ CancellationToken cancellationToken);
+
+ /// <summary>
+ /// Downloads the subtitles.
+ /// </summary>
+ /// <param name="video">The video.</param>
+ /// <param name="subtitleId">The subtitle identifier.</param>
+ /// <param name="providerName">Name of the provider.</param>
+ /// <param name="cancellationToken">The cancellation token.</param>
+ /// <returns>Task.</returns>
+ Task DownloadSubtitles(Video video,
+ string subtitleId,
+ string providerName,
+ CancellationToken cancellationToken);
+ }
+}
diff --git a/MediaBrowser.Controller/Providers/ISubtitleProvider.cs b/MediaBrowser.Controller/Subtitles/ISubtitleProvider.cs
index 09ca27e30..1409b7d50 100644
--- a/MediaBrowser.Controller/Providers/ISubtitleProvider.cs
+++ b/MediaBrowser.Controller/Subtitles/ISubtitleProvider.cs
@@ -1,11 +1,12 @@
using MediaBrowser.Model.Entities;
+using MediaBrowser.Model.Providers;
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
-namespace MediaBrowser.Controller.Providers
+namespace MediaBrowser.Controller.Subtitles
{
public interface ISubtitleProvider
{
@@ -22,12 +23,20 @@ namespace MediaBrowser.Controller.Providers
IEnumerable<SubtitleMediaType> SupportedMediaTypes { get; }
/// <summary>
- /// Gets the subtitles.
+ /// Searches the subtitles.
/// </summary>
/// <param name="request">The request.</param>
/// <param name="cancellationToken">The cancellation token.</param>
+ /// <returns>Task{IEnumerable{RemoteSubtitleInfo}}.</returns>
+ Task<IEnumerable<RemoteSubtitleInfo>> SearchSubtitles(SubtitleSearchRequest request, CancellationToken cancellationToken);
+
+ /// <summary>
+ /// Gets the subtitles.
+ /// </summary>
+ /// <param name="id">The identifier.</param>
+ /// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task{SubtitleResponse}.</returns>
- Task<SubtitleResponse> GetSubtitles(SubtitleRequest request, CancellationToken cancellationToken);
+ Task<SubtitleResponse> GetSubtitles(string id, CancellationToken cancellationToken);
}
public enum SubtitleMediaType
@@ -38,12 +47,12 @@ namespace MediaBrowser.Controller.Providers
public class SubtitleResponse
{
+ public string Language { get; set; }
public string Format { get; set; }
- public bool HasContent { get; set; }
public Stream Stream { get; set; }
}
- public class SubtitleRequest : IHasProviderIds
+ public class SubtitleSearchRequest : IHasProviderIds
{
public string Language { get; set; }
@@ -58,7 +67,7 @@ namespace MediaBrowser.Controller.Providers
public int? ProductionYear { get; set; }
public Dictionary<string, string> ProviderIds { get; set; }
- public SubtitleRequest()
+ public SubtitleSearchRequest()
{
ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
}