diff --git a/packages/rocketchat-oembed/server/server.coffee b/packages/rocketchat-oembed/server/server.coffee index 3254d4f260d..93af3ee39d2 100644 --- a/packages/rocketchat-oembed/server/server.coffee +++ b/packages/rocketchat-oembed/server/server.coffee @@ -106,20 +106,20 @@ OEmbed.getUrlMeta = (url, withFragment) -> if content?.body? metas = {} - content.body.replace /((.|\n)+?)<\/title>/gmi, (meta, title) -> - metas.pageTitle = he.unescape title + content.body.replace /<title[^>]*>([^<]*)<\/title>/gmi, (meta, title) -> + metas.pageTitle ?= he.unescape title - content.body.replace /<meta[^>]*(?:name|property)=[']([^']*)['][^>]*content=[']([^']*)['][^>]*>/gmi, (meta, name, value) -> - metas[changeCase.camelCase(name)] = he.unescape value + content.body.replace /<meta[^>]*(?:name|property)=[']([^']*)['][^>]*\scontent=[']([^']*)['][^>]*>/gmi, (meta, name, value) -> + metas[changeCase.camelCase(name)] ?= he.unescape value - content.body.replace /<meta[^>]*(?:name|property)=["]([^"]*)["][^>]*content=["]([^"]*)["][^>]*>/gmi, (meta, name, value) -> - metas[changeCase.camelCase(name)] = he.unescape value + content.body.replace /<meta[^>]*(?:name|property)=["]([^"]*)["][^>]*\scontent=["]([^"]*)["][^>]*>/gmi, (meta, name, value) -> + metas[changeCase.camelCase(name)] ?= he.unescape value - content.body.replace /<meta[^>]*content=[']([^']*)['][^>]*(?:name|property)=[']([^']*)['][^>]*>/gmi, (meta, value, name) -> - metas[changeCase.camelCase(name)] = he.unescape value + content.body.replace /<meta[^>]*\scontent=[']([^']*)['][^>]*(?:name|property)=[']([^']*)['][^>]*>/gmi, (meta, value, name) -> + metas[changeCase.camelCase(name)] ?= he.unescape value - content.body.replace /<meta[^>]*content=["]([^"]*)["][^>]*(?:name|property)=["]([^"]*)["][^>]*>/gmi, (meta, value, name) -> - metas[changeCase.camelCase(name)] = he.unescape value + content.body.replace /<meta[^>]*\scontent=["]([^"]*)["][^>]*(?:name|property)=["]([^"]*)["][^>]*>/gmi, (meta, value, name) -> + metas[changeCase.camelCase(name)] ?= he.unescape value if metas.fragment is '!' and not withFragment?