private void LibraryModel_Poll(object sender, LibraryEventArgs e) { LibraryEvent fileSystemEvent = e.LibraryEvent; if (fileSystemEvent.EventType == LibraryEventType.Rename) { FileSystemWatcher_Renamed(LibraryModel.FileSystemWatcher, fileSystemEvent.EventData as RenamedEventArgs); } else if (fileSystemEvent.EventType == LibraryEventType.Create) { FileSystemWatcher_Created(LibraryModel.FileSystemWatcher, fileSystemEvent.EventData as FileSystemEventArgs); } else if (fileSystemEvent.EventType == LibraryEventType.Delete) { FileSystemWatcher_Deleted(LibraryModel.FileSystemWatcher, fileSystemEvent.EventData as FileSystemEventArgs); } }
/// <summary> /// /// </summary> /// <param name="item"></param> /// <param name="eventType"></param> public void QueueItem(BaseItem item, EventType eventType) { if (item == null) { throw new ArgumentNullException(nameof(item)); } if (_queueTimer == null) { _queueTimer = new Timer( OnQueueTimerCallback, null, TimeSpan.FromMilliseconds(20000), Timeout.InfiniteTimeSpan); } else { _queueTimer.Change(TimeSpan.FromMilliseconds(20000), Timeout.InfiniteTimeSpan); } var users = Plugin.Instance.PluginConfiguration.TraktUsers; if (users == null || users.Length == 0) { return; } // we need to process the video for each user foreach (var user in users.Where(x => _traktApi.CanSync(item, x))) { // we have a match, this user is watching the folder the video is in. Add to queue and they // will be processed when the next timer elapsed event fires. var libraryEvent = new LibraryEvent { Item = item, TraktUser = user, EventType = eventType }; _queuedEvents.Add(libraryEvent); } }