mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-03-13 05:36:36 +00:00
3.0.5464.40000
This commit is contained in:
@@ -48,7 +48,7 @@ namespace MediaBrowser.Server.Implementations.Sync
|
||||
throw new InvalidOperationException("Cannot proceed with sync because user no longer exists.");
|
||||
}
|
||||
|
||||
var items = GetItemsForSync(job.RequestedItemIds, user)
|
||||
var items = GetItemsForSync(job.RequestedItemIds, user, job.UnwatchedOnly)
|
||||
.ToList();
|
||||
|
||||
var jobItems = _syncRepo.GetJobItems(new SyncJobItemQuery
|
||||
@@ -171,12 +171,31 @@ namespace MediaBrowser.Server.Implementations.Sync
|
||||
return _syncRepo.Update(job);
|
||||
}
|
||||
|
||||
public IEnumerable<BaseItem> GetItemsForSync(IEnumerable<string> itemIds, User user)
|
||||
public IEnumerable<BaseItem> GetItemsForSync(IEnumerable<string> itemIds, User user, bool unwatchedOnly)
|
||||
{
|
||||
return itemIds
|
||||
var items = itemIds
|
||||
.SelectMany(i => GetItemsForSync(i, user))
|
||||
.Where(_syncManager.SupportsSync)
|
||||
.DistinctBy(i => i.Id);
|
||||
.Where(_syncManager.SupportsSync);
|
||||
|
||||
if (unwatchedOnly)
|
||||
{
|
||||
// Avoid implicitly captured closure
|
||||
var currentUser = user;
|
||||
|
||||
items = items.Where(i =>
|
||||
{
|
||||
var video = i as Video;
|
||||
|
||||
if (video != null)
|
||||
{
|
||||
return !video.IsPlayed(currentUser);
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
return items.DistinctBy(i => i.Id);
|
||||
}
|
||||
|
||||
private IEnumerable<BaseItem> GetItemsForSync(string id, User user)
|
||||
@@ -200,8 +219,8 @@ namespace MediaBrowser.Server.Implementations.Sync
|
||||
.GetRecursiveChildren(user);
|
||||
|
||||
return itemByName.GetTaggedItems(items);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (item.IsFolder)
|
||||
{
|
||||
var folder = (Folder)item;
|
||||
|
||||
@@ -49,7 +49,7 @@ namespace MediaBrowser.Server.Implementations.Sync
|
||||
var user = _userManager.GetUserById(request.UserId);
|
||||
|
||||
var items = processor
|
||||
.GetItemsForSync(request.ItemIds, user)
|
||||
.GetItemsForSync(request.ItemIds, user, request.UnwatchedOnly)
|
||||
.ToList();
|
||||
|
||||
if (items.Any(i => !SupportsSync(i)))
|
||||
|
||||
@@ -61,7 +61,7 @@ namespace MediaBrowser.Server.Implementations.Sync
|
||||
|
||||
public bool IsHidden
|
||||
{
|
||||
get { return false; }
|
||||
get { return true; }
|
||||
}
|
||||
|
||||
public bool IsEnabled
|
||||
|
||||
Reference in New Issue
Block a user