diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-12-16 00:01:57 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-12-16 00:01:57 -0500 |
| commit | 3c48def0d76417572193cd306846f1516e0e9038 (patch) | |
| tree | 8570bb756e024eaca9f2d5b8008e43279aa9fb23 /MediaBrowser.Server.Implementations/Channels | |
| parent | 7f7d2f85e324bc9e2c6b170c89af0541601e8cad (diff) | |
sync updates
Diffstat (limited to 'MediaBrowser.Server.Implementations/Channels')
3 files changed, 22 insertions, 3 deletions
diff --git a/MediaBrowser.Server.Implementations/Channels/ChannelDownloadScheduledTask.cs b/MediaBrowser.Server.Implementations/Channels/ChannelDownloadScheduledTask.cs index e38aef8105..bfdbb8ccf2 100644 --- a/MediaBrowser.Server.Implementations/Channels/ChannelDownloadScheduledTask.cs +++ b/MediaBrowser.Server.Implementations/Channels/ChannelDownloadScheduledTask.cs @@ -13,8 +13,10 @@ using MediaBrowser.Model.Dto; using MediaBrowser.Model.Logging; using MediaBrowser.Model.MediaInfo; using MediaBrowser.Model.Querying; +using MoreLinq; using System; using System.Collections.Generic; +using System.Globalization; using System.IO; using System.Linq; using System.Threading; @@ -64,7 +66,10 @@ namespace MediaBrowser.Server.Implementations.Channels { CleanChannelContent(cancellationToken); - var users = _userManager.Users.Select(i => i.Id.ToString("N")).ToList(); + var users = _userManager.Users + .DistinctBy(GetUserDistinctValue) + .Select(i => i.Id.ToString("N")) + .ToList(); var numComplete = 0; @@ -88,6 +93,15 @@ namespace MediaBrowser.Server.Implementations.Channels progress.Report(100); } + public static string GetUserDistinctValue(User user) + { + var channels = user.Configuration.BlockedChannels + .OrderBy(i => i) + .ToList(); + + return string.Join("|", channels.ToArray()); + } + private async Task DownloadContent(string user, CancellationToken cancellationToken, IProgress<double> progress) @@ -201,7 +215,7 @@ namespace MediaBrowser.Server.Implementations.Channels if (IsSizeLimitReached(path, limit.Value)) { return; - } + } } var itemId = item.Id.ToString("N"); diff --git a/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs b/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs index 382d0077a7..9e7679f934 100644 --- a/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs +++ b/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs @@ -533,10 +533,13 @@ namespace MediaBrowser.Server.Implementations.Channels ? null : _userManager.GetUserById(query.UserId); + var limit = query.Limit; + // See below about parental control if (user != null) { query.StartIndex = null; + query.Limit = null; } var internalResult = await GetLatestChannelItemsInternal(query, cancellationToken).ConfigureAwait(false); @@ -554,7 +557,7 @@ namespace MediaBrowser.Server.Implementations.Channels if (user != null) { items = items.Where(i => i.IsVisible(user)) - .Take(10) + .Take(limit ?? 10) .ToArray(); totalRecordCount = items.Length; diff --git a/MediaBrowser.Server.Implementations/Channels/ChannelPostScanTask.cs b/MediaBrowser.Server.Implementations/Channels/ChannelPostScanTask.cs index f677661f7a..72c524ec56 100644 --- a/MediaBrowser.Server.Implementations/Channels/ChannelPostScanTask.cs +++ b/MediaBrowser.Server.Implementations/Channels/ChannelPostScanTask.cs @@ -3,6 +3,7 @@ using MediaBrowser.Controller.Channels; using MediaBrowser.Controller.Library; using MediaBrowser.Model.Channels; using MediaBrowser.Model.Logging; +using MoreLinq; using System; using System.Collections.Generic; using System.Linq; @@ -27,6 +28,7 @@ namespace MediaBrowser.Server.Implementations.Channels public async Task Run(IProgress<double> progress, CancellationToken cancellationToken) { var users = _userManager.Users + .DistinctBy(ChannelDownloadScheduledTask.GetUserDistinctValue) .Select(i => i.Id.ToString("N")) .ToList(); |
