+ private async notifyModeratorsOfVideoAutoBlacklist (video: VideoModel) {
+ const moderators = await UserModel.listWithRight(UserRight.MANAGE_VIDEO_BLACKLIST)
+ if (moderators.length === 0) return
+
+ logger.info('Notifying %s moderators of video auto-blacklist %s.', moderators.length, video.url)
+
+ function settingGetter (user: UserModel) {
+ return user.NotificationSetting.videoAutoBlacklistAsModerator
+ }
+ async function notificationCreator (user: UserModel) {
+
+ const notification = await UserNotificationModel.create({
+ type: UserNotificationType.VIDEO_AUTO_BLACKLIST_FOR_MODERATORS,
+ userId: user.id,
+ videoId: video.id
+ })
+ notification.Video = video
+
+ return notification
+ }
+
+ function emailSender (emails: string[]) {
+ return Emailer.Instance.addVideoAutoBlacklistModeratorsNotification(emails, video)
+ }
+
+ return this.notify({ users: moderators, settingGetter, notificationCreator, emailSender })
+ }
+