diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-05-06 22:28:19 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-05-06 22:28:19 -0400 |
| commit | 0d025f7fb620bf2a24ca9aa4e5994f132e02e7c0 (patch) | |
| tree | 76137f5f868ed81725d29bbdc6ac0e3b57c304d8 /MediaBrowser.Controller | |
| parent | e1dd361c7bf05af49d9210ab679e85fa00870990 (diff) | |
beginning remote subtitle downloading
Diffstat (limited to 'MediaBrowser.Controller')
| -rw-r--r-- | MediaBrowser.Controller/MediaBrowser.Controller.csproj | 3 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Subtitles/ISubtitleManager.cs | 50 | ||||
| -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); } |
