Пример #1
0
        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);
            }
        }
Пример #2
0
    /// <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);
        }
    }