aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/lib
diff options
context:
space:
mode:
Diffstat (limited to 'server/lib')
-rw-r--r--server/lib/emailer.ts34
-rw-r--r--server/lib/peertube-socket.ts16
2 files changed, 27 insertions, 23 deletions
diff --git a/server/lib/emailer.ts b/server/lib/emailer.ts
index a888b7a72..76349ef8f 100644
--- a/server/lib/emailer.ts
+++ b/server/lib/emailer.ts
@@ -100,7 +100,7 @@ class Emailer {
100 100
101 const emailPayload: EmailPayload = { 101 const emailPayload: EmailPayload = {
102 to, 102 to,
103 subject: CONFIG.EMAIL.OBJECT.PREFIX + channelName + ' just published a new video', 103 subject: CONFIG.EMAIL.SUBJECT.PREFIX + channelName + ' just published a new video',
104 text 104 text
105 } 105 }
106 106
@@ -119,7 +119,7 @@ class Emailer {
119 119
120 const emailPayload: EmailPayload = { 120 const emailPayload: EmailPayload = {
121 to, 121 to,
122 subject: CONFIG.EMAIL.OBJECT.PREFIX + 'New follower on your channel ' + followingName, 122 subject: CONFIG.EMAIL.SUBJECT.PREFIX + 'New follower on your channel ' + followingName,
123 text 123 text
124 } 124 }
125 125
@@ -137,7 +137,7 @@ class Emailer {
137 137
138 const emailPayload: EmailPayload = { 138 const emailPayload: EmailPayload = {
139 to, 139 to,
140 subject: CONFIG.EMAIL.OBJECT.PREFIX + 'New instance follower', 140 subject: CONFIG.EMAIL.SUBJECT.PREFIX + 'New instance follower',
141 text 141 text
142 } 142 }
143 143
@@ -157,7 +157,7 @@ class Emailer {
157 157
158 const emailPayload: EmailPayload = { 158 const emailPayload: EmailPayload = {
159 to, 159 to,
160 subject: CONFIG.EMAIL.OBJECT.PREFIX + `Your video ${video.name} is published`, 160 subject: CONFIG.EMAIL.SUBJECT.PREFIX + `Your video ${video.name} is published`,
161 text 161 text
162 } 162 }
163 163
@@ -177,7 +177,7 @@ class Emailer {
177 177
178 const emailPayload: EmailPayload = { 178 const emailPayload: EmailPayload = {
179 to, 179 to,
180 subject: CONFIG.EMAIL.OBJECT.PREFIX + `Your video import ${videoImport.getTargetIdentifier()} is finished`, 180 subject: CONFIG.EMAIL.SUBJECT.PREFIX + `Your video import ${videoImport.getTargetIdentifier()} is finished`,
181 text 181 text
182 } 182 }
183 183
@@ -197,7 +197,7 @@ class Emailer {
197 197
198 const emailPayload: EmailPayload = { 198 const emailPayload: EmailPayload = {
199 to, 199 to,
200 subject: CONFIG.EMAIL.OBJECT.PREFIX + `Your video import ${videoImport.getTargetIdentifier()} encountered an error`, 200 subject: CONFIG.EMAIL.SUBJECT.PREFIX + `Your video import ${videoImport.getTargetIdentifier()} encountered an error`,
201 text 201 text
202 } 202 }
203 203
@@ -219,7 +219,7 @@ class Emailer {
219 219
220 const emailPayload: EmailPayload = { 220 const emailPayload: EmailPayload = {
221 to, 221 to,
222 subject: CONFIG.EMAIL.OBJECT.PREFIX + 'New comment on your video ' + video.name, 222 subject: CONFIG.EMAIL.SUBJECT.PREFIX + 'New comment on your video ' + video.name,
223 text 223 text
224 } 224 }
225 225
@@ -241,7 +241,7 @@ class Emailer {
241 241
242 const emailPayload: EmailPayload = { 242 const emailPayload: EmailPayload = {
243 to, 243 to,
244 subject: CONFIG.EMAIL.OBJECT.PREFIX + 'Mention on video ' + video.name, 244 subject: CONFIG.EMAIL.SUBJECT.PREFIX + 'Mention on video ' + video.name,
245 text 245 text
246 } 246 }
247 247
@@ -258,7 +258,7 @@ class Emailer {
258 258
259 const emailPayload: EmailPayload = { 259 const emailPayload: EmailPayload = {
260 to, 260 to,
261 subject: CONFIG.EMAIL.OBJECT.PREFIX + 'Received a video abuse', 261 subject: CONFIG.EMAIL.SUBJECT.PREFIX + 'Received a video abuse',
262 text 262 text
263 } 263 }
264 264
@@ -281,7 +281,7 @@ class Emailer {
281 281
282 const emailPayload: EmailPayload = { 282 const emailPayload: EmailPayload = {
283 to, 283 to,
284 subject: CONFIG.EMAIL.OBJECT.PREFIX + 'An auto-blacklisted video is awaiting review', 284 subject: CONFIG.EMAIL.SUBJECT.PREFIX + 'An auto-blacklisted video is awaiting review',
285 text 285 text
286 } 286 }
287 287
@@ -296,7 +296,7 @@ class Emailer {
296 296
297 const emailPayload: EmailPayload = { 297 const emailPayload: EmailPayload = {
298 to, 298 to,
299 subject: CONFIG.EMAIL.OBJECT.PREFIX + 'New user registration on ' + WEBSERVER.HOST, 299 subject: CONFIG.EMAIL.SUBJECT.PREFIX + 'New user registration on ' + WEBSERVER.HOST,
300 text 300 text
301 } 301 }
302 302
@@ -318,7 +318,7 @@ class Emailer {
318 318
319 const emailPayload: EmailPayload = { 319 const emailPayload: EmailPayload = {
320 to, 320 to,
321 subject: CONFIG.EMAIL.OBJECT.PREFIX + `Video ${videoName} blacklisted`, 321 subject: CONFIG.EMAIL.SUBJECT.PREFIX + `Video ${videoName} blacklisted`,
322 text 322 text
323 } 323 }
324 324
@@ -336,7 +336,7 @@ class Emailer {
336 336
337 const emailPayload: EmailPayload = { 337 const emailPayload: EmailPayload = {
338 to, 338 to,
339 subject: CONFIG.EMAIL.OBJECT.PREFIX + `Video ${video.name} unblacklisted`, 339 subject: CONFIG.EMAIL.SUBJECT.PREFIX + `Video ${video.name} unblacklisted`,
340 text 340 text
341 } 341 }
342 342
@@ -353,7 +353,7 @@ class Emailer {
353 353
354 const emailPayload: EmailPayload = { 354 const emailPayload: EmailPayload = {
355 to: [ to ], 355 to: [ to ],
356 subject: CONFIG.EMAIL.OBJECT.PREFIX + 'Reset your password', 356 subject: CONFIG.EMAIL.SUBJECT.PREFIX + 'Reset your password',
357 text 357 text
358 } 358 }
359 359
@@ -370,7 +370,7 @@ class Emailer {
370 370
371 const emailPayload: EmailPayload = { 371 const emailPayload: EmailPayload = {
372 to: [ to ], 372 to: [ to ],
373 subject: CONFIG.EMAIL.OBJECT.PREFIX + 'Verify your email', 373 subject: CONFIG.EMAIL.SUBJECT.PREFIX + 'Verify your email',
374 text 374 text
375 } 375 }
376 376
@@ -391,7 +391,7 @@ class Emailer {
391 const to = user.email 391 const to = user.email
392 const emailPayload: EmailPayload = { 392 const emailPayload: EmailPayload = {
393 to: [ to ], 393 to: [ to ],
394 subject: CONFIG.EMAIL.OBJECT.PREFIX + 'Account ' + blockedWord, 394 subject: CONFIG.EMAIL.SUBJECT.PREFIX + 'Account ' + blockedWord,
395 text 395 text
396 } 396 }
397 397
@@ -411,7 +411,7 @@ class Emailer {
411 fromDisplayName: fromEmail, 411 fromDisplayName: fromEmail,
412 replyTo: fromEmail, 412 replyTo: fromEmail,
413 to: [ CONFIG.ADMIN.EMAIL ], 413 to: [ CONFIG.ADMIN.EMAIL ],
414 subject: CONFIG.EMAIL.OBJECT.PREFIX + subject, 414 subject: CONFIG.EMAIL.SUBJECT.PREFIX + subject,
415 text 415 text
416 } 416 }
417 417
diff --git a/server/lib/peertube-socket.ts b/server/lib/peertube-socket.ts
index 1c7b09175..ad2bb4845 100644
--- a/server/lib/peertube-socket.ts
+++ b/server/lib/peertube-socket.ts
@@ -8,7 +8,7 @@ class PeerTubeSocket {
8 8
9 private static instance: PeerTubeSocket 9 private static instance: PeerTubeSocket
10 10
11 private userNotificationSockets: { [ userId: number ]: SocketIO.Socket } = {} 11 private userNotificationSockets: { [ userId: number ]: SocketIO.Socket[] } = {}
12 12
13 private constructor () {} 13 private constructor () {}
14 14
@@ -22,22 +22,26 @@ class PeerTubeSocket {
22 22
23 logger.debug('User %d connected on the notification system.', userId) 23 logger.debug('User %d connected on the notification system.', userId)
24 24
25 this.userNotificationSockets[userId] = socket 25 if (!this.userNotificationSockets[userId]) this.userNotificationSockets[userId] = []
26
27 this.userNotificationSockets[userId].push(socket)
26 28
27 socket.on('disconnect', () => { 29 socket.on('disconnect', () => {
28 logger.debug('User %d disconnected from SocketIO notifications.', userId) 30 logger.debug('User %d disconnected from SocketIO notifications.', userId)
29 31
30 delete this.userNotificationSockets[userId] 32 this.userNotificationSockets[userId] = this.userNotificationSockets[userId].filter(s => s !== socket)
31 }) 33 })
32 }) 34 })
33 } 35 }
34 36
35 sendNotification (userId: number, notification: UserNotificationModelForApi) { 37 sendNotification (userId: number, notification: UserNotificationModelForApi) {
36 const socket = this.userNotificationSockets[userId] 38 const sockets = this.userNotificationSockets[userId]
37 39
38 if (!socket) return 40 if (!sockets) return
39 41
40 socket.emit('new-notification', notification.toFormattedJSON()) 42 for (const socket of sockets) {
43 socket.emit('new-notification', notification.toFormattedJSON())
44 }
41 } 45 }
42 46
43 static get Instance () { 47 static get Instance () {