aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2016-05-15 12:32:06 -0400
committerLuke <luke.pulverenti@gmail.com>2016-05-15 12:32:06 -0400
commit8cc618232bdd2aee3d8fe056768da24aabffbe00 (patch)
treebf3e7f816c26376b1a9a4cd187fb0a1495c2358c /MediaBrowser.Server.Implementations
parent398d6c80ccdadc5e44eef039784fc3beff9f6db8 (diff)
parent995c34437e65b40576881a26c18f2ecf8b84ac89 (diff)
Merge pull request #1735 from MediaBrowser/dev
update tabs
Diffstat (limited to 'MediaBrowser.Server.Implementations')
-rw-r--r--MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs33
1 files changed, 32 insertions, 1 deletions
diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
index f85be5100..99ab07648 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
+++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
@@ -1383,6 +1383,28 @@ namespace MediaBrowser.Server.Implementations.LiveTv
}
}
+ private QueryResult<BaseItem> GetEmbyRecordings(RecordingQuery query, User user)
+ {
+ var folders = EmbyTV.EmbyTV.Current.GetRecordingFolders()
+ .SelectMany(i => i.Locations)
+ .Distinct(StringComparer.OrdinalIgnoreCase)
+ .Select(i => _libraryManager.FindByPath(i, true))
+ .Where(i => i != null)
+ .Where(i => i.IsVisibleStandalone(user))
+ .ToList();
+
+ var items = _libraryManager.GetItemsResult(new InternalItemsQuery(user)
+ {
+ MediaTypes = new[] { MediaType.Video },
+ Recursive = true,
+ AncestorIds = folders.Select(i => i.Id.ToString("N")).ToArray(),
+ ExcludeLocationTypes = new[] { LocationType.Virtual },
+ Limit = Math.Min(10, query.Limit ?? int.MaxValue)
+ });
+
+ return items;
+ }
+
public async Task<QueryResult<BaseItem>> GetInternalRecordings(RecordingQuery query, CancellationToken cancellationToken)
{
var user = string.IsNullOrEmpty(query.UserId) ? null : _userManager.GetUserById(query.UserId);
@@ -1391,6 +1413,15 @@ namespace MediaBrowser.Server.Implementations.LiveTv
return new QueryResult<BaseItem>();
}
+ if (user != null && !(query.IsInProgress ?? false))
+ {
+ var initialResult = GetEmbyRecordings(query, user);
+ if (initialResult.TotalRecordCount > 0)
+ {
+ return initialResult;
+ }
+ }
+
await RefreshRecordings(cancellationToken).ConfigureAwait(false);
var internalQuery = new InternalItemsQuery(user)
@@ -2060,7 +2091,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
}, cancellationToken).ConfigureAwait(false);
- var recordings = recordingResult.Items.Cast<ILiveTvRecording>().ToList();
+ var recordings = recordingResult.Items.OfType<ILiveTvRecording>().ToList();
var groups = new List<BaseItemDto>();