From aa1260ccde559b17ac7427e2d4309fe1d0062e3f Mon Sep 17 00:00:00 2001 From: Reid Wakida Date: Mon, 28 Sep 2015 21:05:07 -1000 Subject: [PATCH 1/2] Fix #911 where emails not sent. Users model findOneByEmailAddress had a typo in the query field. The following use cases are fixed: 1. sendConfirmationEmail 2. sendForgotPasswordEmail 3. lookup existing admin by email when initializing RocketChat at startup --- packages/rocketchat-lib/server/models/Users.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/rocketchat-lib/server/models/Users.coffee b/packages/rocketchat-lib/server/models/Users.coffee index 891c4fbf9e66..059635c68332 100644 --- a/packages/rocketchat-lib/server/models/Users.coffee +++ b/packages/rocketchat-lib/server/models/Users.coffee @@ -15,7 +15,7 @@ RocketChat.models.Users = new class extends RocketChat.models._Base findOneByEmailAddress: (emailAddress, options) -> query = - 'email.address': emailAddress + 'emails.address': emailAddress return @findOne query, options From 07073fe21b68684fa408dd81a6313840f4e29218 Mon Sep 17 00:00:00 2001 From: kakawait Date: Tue, 29 Sep 2015 18:41:01 +0200 Subject: [PATCH 2/2] disable rendering media links/syntaxes when there are inside simple backtick --- .../rocketchat-autolinker/autolinker.coffee | 23 ++++++++++--------- packages/rocketchat-spotify/spotify.coffee | 12 +++++----- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/packages/rocketchat-autolinker/autolinker.coffee b/packages/rocketchat-autolinker/autolinker.coffee index 06ccd95416a3..5fbd91097171 100644 --- a/packages/rocketchat-autolinker/autolinker.coffee +++ b/packages/rocketchat-autolinker/autolinker.coffee @@ -7,19 +7,20 @@ class AutoLinker constructor: (message) -> if _.trim message.html # Separate text in code blocks and non code blocks - msgParts = message.html.split(/(```\w*[\n\ ]?[\s\S]*?```+?)/) + msgParts = message.html.split /(```\w*[\n ]?[\s\S]*?```+?)|(`(?:[^`]+)`)/ for part, index in msgParts - # Verify if this part is code - codeMatch = part.match(/```(\w*)[\n\ ]?([\s\S]*?)```+?/) - if not codeMatch? - msgParts[index] = Autolinker.link part, - stripPrefix: false - twitter: false - replaceFn: (autolinker, match) -> - if match.getType() is 'url' - return /(:\/\/|www\.).+/.test match.matchedText - return true + if part?.length? > 0 + # Verify if this part is code + codeMatch = part.match /(?:```(\w*)[\n ]?([\s\S]*?)```+?)|(?:`(?:[^`]+)`)/ + if not codeMatch? + msgParts[index] = Autolinker.link part, + stripPrefix: false + twitter: false + replaceFn: (autolinker, match) -> + if match.getType() is 'url' + return /(:\/\/|www\.).+/.test match.matchedText + return true # Re-mount message message.html = msgParts.join('') diff --git a/packages/rocketchat-spotify/spotify.coffee b/packages/rocketchat-spotify/spotify.coffee index b6b1b729e5ec..5b75390ee129 100644 --- a/packages/rocketchat-spotify/spotify.coffee +++ b/packages/rocketchat-spotify/spotify.coffee @@ -7,13 +7,14 @@ class Spotify process = (message, source, callback) -> if _.trim source # Separate text in code blocks and non code blocks - msgParts = source.split(/(```\w*[\n\ ]?[\s\S]*?```+?)/) + msgParts = source.split /(```\w*[\n ]?[\s\S]*?```+?)|(`(?:[^`]+)`)/ for part, index in msgParts # Verify if this part is code - codeMatch = part.match(/```(\w*)[\n\ ]?([\s\S]*?)```+?/) - if not codeMatch? - callback message, msgParts, index, part + if part?.length? > 0 + codeMatch = part.match /(?:```(\w*)[\n ]?([\s\S]*?)```+?)|(?:`(?:[^`]+)`)/ + if not codeMatch? + callback message, msgParts, index, part @transform: (message) -> urls = [] @@ -46,8 +47,7 @@ class Spotify if item.source quotedSource = item.source.replace /[\\^$.*+?()[\]{}|]/g, '\\$&' re = new RegExp '(^|\\s)' + quotedSource + '(\\s|$)', 'g' - part = part.replace re, '$1' + item.source + '$2' - msgParts[index] = part + msgParts[index] = part.replace re, '$1' + item.source + '$2' message.html = msgParts.join '' return message