From 72a5383c703b86286cf61decb92b987b48b50d3c Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 15 Mar 2015 13:50:47 -0400 Subject: rework handling of original quality --- MediaBrowser.Api/Sync/SyncHelper.cs | 75 +++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 MediaBrowser.Api/Sync/SyncHelper.cs (limited to 'MediaBrowser.Api/Sync/SyncHelper.cs') diff --git a/MediaBrowser.Api/Sync/SyncHelper.cs b/MediaBrowser.Api/Sync/SyncHelper.cs new file mode 100644 index 000000000..d0a866c02 --- /dev/null +++ b/MediaBrowser.Api/Sync/SyncHelper.cs @@ -0,0 +1,75 @@ +using MediaBrowser.Model.Dto; +using MediaBrowser.Model.Sync; +using System.Collections.Generic; + +namespace MediaBrowser.Api.Sync +{ + public static class SyncHelper + { + public static List GetSyncOptions(List items) + { + List options = new List(); + + if (items.Count > 1) + { + options.Add(SyncJobOption.Name); + } + + foreach (BaseItemDto item in items) + { + if (item.SupportsSync ?? false) + { + if (item.IsVideo) + { + options.Add(SyncJobOption.Quality); + if (items.Count > 1) + { + options.Add(SyncJobOption.UnwatchedOnly); + } + break; + } + if (item.IsFolder && !item.IsMusicGenre && !item.IsArtist && !item.IsType("musicalbum") && !item.IsGameGenre) + { + options.Add(SyncJobOption.Quality); + options.Add(SyncJobOption.UnwatchedOnly); + break; + } + if (item.IsGenre) + { + options.Add(SyncJobOption.SyncNewContent); + options.Add(SyncJobOption.ItemLimit); + break; + } + } + } + + foreach (BaseItemDto item in items) + { + if (item.SupportsSync ?? false) + { + if (item.IsFolder || item.IsGameGenre || item.IsMusicGenre || item.IsGenre || item.IsArtist || item.IsStudio || item.IsPerson) + { + options.Add(SyncJobOption.SyncNewContent); + options.Add(SyncJobOption.ItemLimit); + break; + } + } + } + + return options; + } + + public static List GetSyncOptions(SyncCategory category) + { + List options = new List(); + + options.Add(SyncJobOption.Name); + options.Add(SyncJobOption.Quality); + options.Add(SyncJobOption.UnwatchedOnly); + options.Add(SyncJobOption.SyncNewContent); + options.Add(SyncJobOption.ItemLimit); + + return options; + } + } +} -- cgit v1.2.3