aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Channels
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-12-16 00:01:57 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-12-16 00:01:57 -0500
commit3c48def0d76417572193cd306846f1516e0e9038 (patch)
tree8570bb756e024eaca9f2d5b8008e43279aa9fb23 /MediaBrowser.Server.Implementations/Channels
parent7f7d2f85e324bc9e2c6b170c89af0541601e8cad (diff)
sync updates
Diffstat (limited to 'MediaBrowser.Server.Implementations/Channels')
-rw-r--r--MediaBrowser.Server.Implementations/Channels/ChannelDownloadScheduledTask.cs18
-rw-r--r--MediaBrowser.Server.Implementations/Channels/ChannelManager.cs5
-rw-r--r--MediaBrowser.Server.Implementations/Channels/ChannelPostScanTask.cs2
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();