diff options
| author | 7illusions <z@7illusions.com> | 2014-08-30 19:06:58 +0200 |
|---|---|---|
| committer | 7illusions <z@7illusions.com> | 2014-08-30 19:06:58 +0200 |
| commit | 66ad1699e22029b605e17735e8d9450285d8748a (patch) | |
| tree | ffc92c88d24850b2f82b6b3a8bdd904a2ccc77a5 /MediaBrowser.Server.Implementations/EntryPoints/Notifications | |
| parent | 34bc54263e886aae777a3537dc50a6535b51330a (diff) | |
| parent | 9d36f518182bc075c19d78084870f5115fa62d1e (diff) | |
Merge pull request #1 from MediaBrowser/master
Update to latest
Diffstat (limited to 'MediaBrowser.Server.Implementations/EntryPoints/Notifications')
| -rw-r--r-- | MediaBrowser.Server.Implementations/EntryPoints/Notifications/Notifications.cs | 55 | ||||
| -rw-r--r-- | MediaBrowser.Server.Implementations/EntryPoints/Notifications/WebSocketNotifier.cs | 9 |
2 files changed, 32 insertions, 32 deletions
diff --git a/MediaBrowser.Server.Implementations/EntryPoints/Notifications/Notifications.cs b/MediaBrowser.Server.Implementations/EntryPoints/Notifications/Notifications.cs index b10b64c3e..2d824f36c 100644 --- a/MediaBrowser.Server.Implementations/EntryPoints/Notifications/Notifications.cs +++ b/MediaBrowser.Server.Implementations/EntryPoints/Notifications/Notifications.cs @@ -1,15 +1,14 @@ -using MediaBrowser.Common.Plugins; +using MediaBrowser.Common.Configuration; +using MediaBrowser.Common.Plugins; using MediaBrowser.Common.ScheduledTasks; using MediaBrowser.Common.Updates; using MediaBrowser.Controller; -using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Notifications; using MediaBrowser.Controller.Plugins; using MediaBrowser.Controller.Session; -using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Events; using MediaBrowser.Model.Logging; @@ -37,7 +36,6 @@ namespace MediaBrowser.Server.Implementations.EntryPoints.Notifications private readonly ITaskManager _taskManager; private readonly INotificationManager _notificationManager; - private readonly IServerConfigurationManager _config; private readonly ILibraryManager _libraryManager; private readonly ISessionManager _sessionManager; private readonly IServerApplicationHost _appHost; @@ -45,17 +43,19 @@ namespace MediaBrowser.Server.Implementations.EntryPoints.Notifications private Timer LibraryUpdateTimer { get; set; } private readonly object _libraryChangedSyncLock = new object(); - public Notifications(IInstallationManager installationManager, IUserManager userManager, ILogger logger, ITaskManager taskManager, INotificationManager notificationManager, IServerConfigurationManager config, ILibraryManager libraryManager, ISessionManager sessionManager, IServerApplicationHost appHost) + private readonly IConfigurationManager _config; + + public Notifications(IInstallationManager installationManager, IUserManager userManager, ILogger logger, ITaskManager taskManager, INotificationManager notificationManager, ILibraryManager libraryManager, ISessionManager sessionManager, IServerApplicationHost appHost, IConfigurationManager config) { _installationManager = installationManager; _userManager = userManager; _logger = logger; _taskManager = taskManager; _notificationManager = notificationManager; - _config = config; _libraryManager = libraryManager; _sessionManager = sessionManager; _appHost = appHost; + _config = config; } public void Run() @@ -164,20 +164,25 @@ namespace MediaBrowser.Server.Implementations.EntryPoints.Notifications await SendNotification(notification).ConfigureAwait(false); } - void _sessionManager_PlaybackStart(object sender, PlaybackProgressEventArgs e) - { - var item = e.MediaInfo; + private NotificationOptions GetOptions() + { + return _config.GetConfiguration<NotificationOptions>("notifications"); + } - if (item == null) - { - _logger.Warn("PlaybackStart reported with null media info."); - return; - } + void _sessionManager_PlaybackStart(object sender, PlaybackProgressEventArgs e) + { + var item = e.MediaInfo; - var type = GetPlaybackNotificationType(item.MediaType); + if (item == null) + { + _logger.Warn("PlaybackStart reported with null media info."); + return; + } - SendPlaybackNotification(type, e); - } + var type = GetPlaybackNotificationType(item.MediaType); + + SendPlaybackNotification(type, e); + } void _sessionManager_PlaybackStopped(object sender, PlaybackStopEventArgs e) { @@ -198,20 +203,24 @@ namespace MediaBrowser.Server.Implementations.EntryPoints.Notifications { var user = e.Users.FirstOrDefault(); + if (user != null && !GetOptions().IsEnabledToMonitorUser(type, user.Id.ToString("N"))) + { + return; + } + var item = e.MediaInfo; + var themeMedia = item as IThemeMedia; - if (e.Item != null && e.Item.Parent == null) + if (themeMedia != null && themeMedia.IsThemeMedia) { // Don't report theme song or local trailer playback - // TODO: This will also cause movie specials to not be reported return; } + var notification = new NotificationRequest { - NotificationType = type, - - ExcludeUserIds = e.Users.Select(i => i.Id.ToString("N")).ToList() + NotificationType = type }; notification.Variables["ItemName"] = item.Name; @@ -317,7 +326,7 @@ namespace MediaBrowser.Server.Implementations.EntryPoints.Notifications } } - private string GetItemName(BaseItem item) + public static string GetItemName(BaseItem item) { var name = item.Name; diff --git a/MediaBrowser.Server.Implementations/EntryPoints/Notifications/WebSocketNotifier.cs b/MediaBrowser.Server.Implementations/EntryPoints/Notifications/WebSocketNotifier.cs index 42aadf62e..5f1db03c6 100644 --- a/MediaBrowser.Server.Implementations/EntryPoints/Notifications/WebSocketNotifier.cs +++ b/MediaBrowser.Server.Implementations/EntryPoints/Notifications/WebSocketNotifier.cs @@ -23,7 +23,6 @@ namespace MediaBrowser.Server.Implementations.EntryPoints.Notifications public void Run() { _notificationsRepo.NotificationAdded += _notificationsRepo_NotificationAdded; - _notificationsRepo.NotificationUpdated += _notificationsRepo_NotificationUpdated; _notificationsRepo.NotificationsMarkedRead += _notificationsRepo_NotificationsMarkedRead; } @@ -40,13 +39,6 @@ namespace MediaBrowser.Server.Implementations.EntryPoints.Notifications _serverManager.SendWebSocketMessage("NotificationsMarkedRead", msg); } - void _notificationsRepo_NotificationUpdated(object sender, NotificationUpdateEventArgs e) - { - var msg = e.Notification.UserId + "|" + e.Notification.Id; - - _serverManager.SendWebSocketMessage("NotificationUpdated", msg); - } - void _notificationsRepo_NotificationAdded(object sender, NotificationUpdateEventArgs e) { var msg = e.Notification.UserId + "|" + e.Notification.Id; @@ -57,7 +49,6 @@ namespace MediaBrowser.Server.Implementations.EntryPoints.Notifications public void Dispose() { _notificationsRepo.NotificationAdded -= _notificationsRepo_NotificationAdded; - _notificationsRepo.NotificationUpdated -= _notificationsRepo_NotificationUpdated; } } } |
