using System; using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; using Emby.Security; using MediaBrowser.Common.Configuration; using MediaBrowser.Common.Plugins; using MediaBrowser.Common.Security; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.MediaEncoding; using MediaBrowser.Controller.Notifications; using MediaBrowser.Controller.Persistence; using MediaBrowser.Model.IO; using MediaBrowser.Model.Logging; using MediaBrowser.Model.Tasks; namespace MediaBrowser.Plugins.TimeLordMovies.ScheduledTasks; public class TLMoviesScheduledTask : IScheduledTask { private readonly ILogger _logger; private readonly ILibraryManager _libraryManager; private readonly IMediaEncoder _mediaEncoder; private readonly IFileSystem _fileSystem; private readonly IApplicationPaths _appPaths; private readonly ILibraryMonitor _libraryMonitor; private readonly IUserManager _userManager; private readonly INotificationManager _notificationManager; private readonly IItemRepository _itemRepo; public string Category => "Time Lord"; public string Key => "TimeLordMovies"; public string Description => "Sets the Movie Date Added to the original premier date (Movies)"; public string Name => "Change Movie date added to original Premier date"; public TLMoviesScheduledTask(ILibraryManager libraryManager, ILogger logger, IMediaEncoder mediaEncoder, IFileSystem fileSystem, IApplicationPaths appPaths, ILibraryMonitor libraryMonitor, ISecurityManager securityManager, IUserManager userManager, INotificationManager notificationManager, IItemRepository itemRepo) { _libraryManager = libraryManager; _logger = logger; _userManager = userManager; _mediaEncoder = mediaEncoder; _fileSystem = fileSystem; _appPaths = appPaths; _libraryMonitor = libraryMonitor; _notificationManager = notificationManager; _itemRepo = itemRepo; } public async Task Execute(CancellationToken cancellationToken, IProgress progress) { RegRecord registration = await PluginSecurityManager.Current.GetRegistrationStatus("TimeLordMovies", cancellationToken).ConfigureAwait(continueOnCapturedContext: false); Plugin.Instance.Registration = registration; _logger.Info("TimeLordMovies Registration Status - Registered: {0} In trial: {2} Expiration Date: {1} Is Valid: {3}", new object[4] { Plugin.Instance.Registration.registered, Plugin.Instance.Registration.expDate, Plugin.Instance.Registration.isTrial, Plugin.Instance.Registration.isValid }); if (Plugin.Instance.Registration.isTrial) { _logger.Info(((BasePlugin)Plugin.Instance).Name + " You are Using the Trial Version, Please Consider purchasing to continue using the plugin after the trial period", new object[0]); } if (!Plugin.Instance.Registration.isValid) { _logger.Info(((BasePlugin)Plugin.Instance).Name + " Trial Expired, Please register to continue using the plugin", new object[0]); return; } _logger.Info("TimeLord.Movies :: Start :", (object[])null); try { _logger.Info("TimeLord.Movies :: Rework Movie Dates :: Start", (object[])null); AggregateFolder rootFolder = _libraryManager.RootFolder; InternalItemsQuery val = new InternalItemsQuery(); val.IncludeItemTypes = new string[1] { typeof(Movie).Name }; val.Recursive = true; List list = ((Folder)rootFolder).GetItemList(val).Where(delegate(BaseItem i) { //IL_0001: Unknown result type (might be due to invalid IL or missing references) if ((int)i.LocationType == 0) { DateTimeOffset dateCreated = i.DateCreated; DateTimeOffset? premiereDate = i.PremiereDate; if (premiereDate.HasValue && dateCreated > premiereDate.GetValueOrDefault() && i.PremiereDate.HasValue) { return !i.IsLocked; } } return false; }).ToList(); int num = 0; foreach (Movie item in list) { Movie val2 = item; try { cancellationToken.ThrowIfCancellationRequested(); ((BaseItem)val2).DateCreated = ((BaseItem)val2).PremiereDate.Value; try { ((BaseItem)val2).UpdateToRepository((ItemUpdateType)16); _logger.Info("TimeLord.Movies:: Updated :: " + ((BaseItem)val2).Name, (object[])null); } catch { _logger.Info("TimeLord.Movies :: Updated :: " + ((BaseItem)val2).Name, (object[])null); } } catch (OperationCanceledException) { _logger.Info("TimeLord.Movies :: Canceled", (object[])null); break; } catch (Exception ex2) { _logger.ErrorException("TimeLord.Movies :: Error messing about with {0}", ex2, new object[1] { ((BaseItem)val2).Name }); } num++; double num2 = num; num2 /= (double)list.Count(); num2 *= 100.0; progress.Report(num2); } } catch (Exception ex3) { _logger.ErrorException("TimeLord.Movies :: Error {0}", ex3, Array.Empty()); } } public IEnumerable GetDefaultTriggers() { //IL_0008: Unknown result type (might be due to invalid IL or missing references) //IL_000d: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Expected O, but got Unknown return (IEnumerable)(object)new TaskTriggerInfo[1] { new TaskTriggerInfo { Type = "DailyTrigger", TimeOfDayTicks = TimeSpan.FromHours(5.0).Ticks } }; } }