diff options
Diffstat (limited to 'server/lib/emailer.ts')
-rw-r--r-- | server/lib/emailer.ts | 42 |
1 files changed, 39 insertions, 3 deletions
diff --git a/server/lib/emailer.ts b/server/lib/emailer.ts index 969eae77b..187d4e86d 100644 --- a/server/lib/emailer.ts +++ b/server/lib/emailer.ts | |||
@@ -12,7 +12,7 @@ import { isTestInstance, root } from '../helpers/core-utils' | |||
12 | import { bunyanLogger, logger } from '../helpers/logger' | 12 | import { bunyanLogger, logger } from '../helpers/logger' |
13 | import { CONFIG, isEmailEnabled } from '../initializers/config' | 13 | import { CONFIG, isEmailEnabled } from '../initializers/config' |
14 | import { WEBSERVER } from '../initializers/constants' | 14 | import { WEBSERVER } from '../initializers/constants' |
15 | import { MAbuseFull, MAbuseMessage, MAccountDefault, MActorFollowActors, MActorFollowFull, MUser } from '../types/models' | 15 | import { MAbuseFull, MAbuseMessage, MAccountDefault, MActorFollowActors, MActorFollowFull, MPlugin, MUser } from '../types/models' |
16 | import { MCommentOwnerVideo, MVideo, MVideoAccountLight } from '../types/models/video' | 16 | import { MCommentOwnerVideo, MVideo, MVideoAccountLight } from '../types/models/video' |
17 | import { JobQueue } from './job-queue' | 17 | import { JobQueue } from './job-queue' |
18 | 18 | ||
@@ -403,7 +403,7 @@ class Emailer { | |||
403 | } | 403 | } |
404 | 404 | ||
405 | async addVideoAutoBlacklistModeratorsNotification (to: string[], videoBlacklist: MVideoBlacklistLightVideo) { | 405 | async addVideoAutoBlacklistModeratorsNotification (to: string[], videoBlacklist: MVideoBlacklistLightVideo) { |
406 | const VIDEO_AUTO_BLACKLIST_URL = WEBSERVER.URL + '/admin/moderation/video-auto-blacklist/list' | 406 | const videoAutoBlacklistUrl = WEBSERVER.URL + '/admin/moderation/video-auto-blacklist/list' |
407 | const videoUrl = WEBSERVER.URL + videoBlacklist.Video.getWatchStaticPath() | 407 | const videoUrl = WEBSERVER.URL + videoBlacklist.Video.getWatchStaticPath() |
408 | const channel = (await VideoChannelModel.loadByIdAndPopulateAccount(videoBlacklist.Video.channelId)).toFormattedSummaryJSON() | 408 | const channel = (await VideoChannelModel.loadByIdAndPopulateAccount(videoBlacklist.Video.channelId)).toFormattedSummaryJSON() |
409 | 409 | ||
@@ -417,7 +417,7 @@ class Emailer { | |||
417 | videoName: videoBlacklist.Video.name, | 417 | videoName: videoBlacklist.Video.name, |
418 | action: { | 418 | action: { |
419 | text: 'Review autoblacklist', | 419 | text: 'Review autoblacklist', |
420 | url: VIDEO_AUTO_BLACKLIST_URL | 420 | url: videoAutoBlacklistUrl |
421 | } | 421 | } |
422 | } | 422 | } |
423 | } | 423 | } |
@@ -472,6 +472,42 @@ class Emailer { | |||
472 | return JobQueue.Instance.createJob({ type: 'email', payload: emailPayload }) | 472 | return JobQueue.Instance.createJob({ type: 'email', payload: emailPayload }) |
473 | } | 473 | } |
474 | 474 | ||
475 | addNewPeerTubeVersionNotification (to: string[], latestVersion: string) { | ||
476 | const subject = `A new PeerTube version is available: ${latestVersion}` | ||
477 | |||
478 | const emailPayload: EmailPayload = { | ||
479 | to, | ||
480 | template: 'peertube-version-new', | ||
481 | subject, | ||
482 | text: subject, | ||
483 | locals: { | ||
484 | latestVersion | ||
485 | } | ||
486 | } | ||
487 | |||
488 | return JobQueue.Instance.createJob({ type: 'email', payload: emailPayload }) | ||
489 | } | ||
490 | |||
491 | addNewPlugionVersionNotification (to: string[], plugin: MPlugin) { | ||
492 | const pluginUrl = WEBSERVER.URL + '/admin/plugins/list-installed?pluginType=' + plugin.type | ||
493 | |||
494 | const subject = `A new plugin/theme version is available: ${plugin.name}@${plugin.latestVersion}` | ||
495 | |||
496 | const emailPayload: EmailPayload = { | ||
497 | to, | ||
498 | template: 'plugin-version-new', | ||
499 | subject, | ||
500 | text: subject, | ||
501 | locals: { | ||
502 | pluginName: plugin.name, | ||
503 | latestVersion: plugin.latestVersion, | ||
504 | pluginUrl | ||
505 | } | ||
506 | } | ||
507 | |||
508 | return JobQueue.Instance.createJob({ type: 'email', payload: emailPayload }) | ||
509 | } | ||
510 | |||
475 | addPasswordResetEmailJob (username: string, to: string, resetPasswordUrl: string) { | 511 | addPasswordResetEmailJob (username: string, to: string, resetPasswordUrl: string) { |
476 | const emailPayload: EmailPayload = { | 512 | const emailPayload: EmailPayload = { |
477 | template: 'password-reset', | 513 | template: 'password-reset', |