mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-12-17 14:33:06 +03: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;
|
||||
|
||||
Reference in New Issue
Block a user