diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-12-03 23:18:50 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-12-03 23:18:50 -0500 |
| commit | 40959a816f49d040e16e0178d0e11d51282d98cc (patch) | |
| tree | d93991283d10f87d398e34db79e292eea1bcfa34 /MediaBrowser.Api/TvShowsService.cs | |
| parent | 61a78e2be961a7deb98558f2b872c417b03c885d (diff) | |
more support for episodes directly in a series folder
Diffstat (limited to 'MediaBrowser.Api/TvShowsService.cs')
| -rw-r--r-- | MediaBrowser.Api/TvShowsService.cs | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/MediaBrowser.Api/TvShowsService.cs b/MediaBrowser.Api/TvShowsService.cs index 9191bfc0c..68ebd60c5 100644 --- a/MediaBrowser.Api/TvShowsService.cs +++ b/MediaBrowser.Api/TvShowsService.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Controller.Dto; +using MediaBrowser.Api.UserLibrary; +using MediaBrowser.Controller.Dto; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.Library; @@ -89,6 +90,9 @@ namespace MediaBrowser.Api [ApiMember(Name = "IsVirtualUnaired", Description = "Optional filter by items that are virtual unaired episodes or not.", IsRequired = false, DataType = "bool", ParameterType = "query", Verb = "GET")] public bool? IsVirtualUnaired { get; set; } + + [ApiMember(Name = "AdjacentTo", Description = "Optional. Return items that are siblings of a supplied item.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")] + public string AdjacentTo { get; set; } } [Route("/Shows/{Id}/Seasons", "GET")] @@ -120,6 +124,9 @@ namespace MediaBrowser.Api [ApiMember(Name = "IsVirtualUnaired", Description = "Optional filter by items that are virtual unaired episodes or not.", IsRequired = false, DataType = "bool", ParameterType = "query", Verb = "GET")] public bool? IsVirtualUnaired { get; set; } + + [ApiMember(Name = "AdjacentTo", Description = "Optional. Return items that are siblings of a supplied item.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")] + public string AdjacentTo { get; set; } } /// <summary> @@ -394,6 +401,13 @@ namespace MediaBrowser.Api seasons = _libraryManager.Sort(seasons, user, new[] { sortOrder }, SortOrder.Ascending) .Cast<Season>(); + // This must be the last filter + if (!string.IsNullOrEmpty(request.AdjacentTo)) + { + seasons = ItemsService.FilterForAdjacency(seasons, request.AdjacentTo) + .Cast<Season>(); + } + var returnItems = seasons.Select(i => _dtoService.GetBaseItemDto(i, fields, user)) .ToArray(); @@ -447,7 +461,7 @@ namespace MediaBrowser.Api if (!string.IsNullOrEmpty(request.SeasonId)) { - var season = _libraryManager.GetItemById(request.Id) as Season; + var season = _libraryManager.GetItemById(new Guid(request.SeasonId)) as Season; if (season.IndexNumber.HasValue) { @@ -496,6 +510,13 @@ namespace MediaBrowser.Api episodes = _libraryManager.Sort(episodes, user, new[] { sortOrder }, SortOrder.Ascending) .Cast<Episode>(); + // This must be the last filter + if (!string.IsNullOrEmpty(request.AdjacentTo)) + { + episodes = ItemsService.FilterForAdjacency(episodes, request.AdjacentTo) + .Cast<Episode>(); + } + var returnItems = episodes.Select(i => _dtoService.GetBaseItemDto(i, fields, user)) .ToArray(); |
