diff --git a/src/notifications.js b/src/notifications.js index eda2548ffb..d3bcaa1ce0 100644 --- a/src/notifications.js +++ b/src/notifications.js @@ -8,6 +8,7 @@ const _ = require('lodash'); const db = require('./database'); const User = require('./user'); +const posts = require('./posts'); const groups = require('./groups'); const meta = require('./meta'); const batch = require('./batch'); @@ -172,14 +173,16 @@ async function pushToUids(uids, notification) { if (['new-reply', 'new-chat'].includes(notification.type)) { notification['cta-type'] = notification.type; } - + let body = notification.bodyLong || ''; + body = posts.relativeToAbsolute(body, posts.urlRegex); + body = posts.relativeToAbsolute(body, posts.imgRegex); await async.eachLimit(uids, 3, function (uid, next) { emailer.send('notification', uid, { path: notification.path, notification_url: notification.path.startsWith('http') ? notification.path : nconf.get('url') + notification.path, subject: utils.stripHTMLTags(notification.subject || '[[notifications:new_notification]]'), intro: utils.stripHTMLTags(notification.bodyShort), - body: notification.bodyLong || '', + body: body, notification: notification, showUnsubscribe: true, }, next); diff --git a/src/posts/parse.js b/src/posts/parse.js index 6a7586fbc6..208abbaebc 100644 --- a/src/posts/parse.js +++ b/src/posts/parse.js @@ -77,7 +77,10 @@ module.exports = function (Posts) { }; Posts.relativeToAbsolute = function (content, regex) { - // Turns relative links in post body to absolute urls + // Turns relative links in content to absolute urls + if (!content) { + return content; + } var parsed; var current = regex.regex.exec(content); var absolute; diff --git a/src/topics/follow.js b/src/topics/follow.js index 4faaa40419..d576578bc4 100644 --- a/src/topics/follow.js +++ b/src/topics/follow.js @@ -2,7 +2,6 @@ 'use strict'; const db = require('../database'); -const posts = require('../posts'); const notifications = require('../notifications'); const privileges = require('../privileges'); const plugins = require('../plugins'); @@ -163,9 +162,6 @@ module.exports = function (Topics) { title = utils.decodeHTMLEntities(title); } - postData.content = posts.relativeToAbsolute(postData.content, posts.urlRegex); - postData.content = posts.relativeToAbsolute(postData.content, posts.imgRegex); - const notification = await notifications.create({ subject: title, bodyLong: postData.content,