diff --git a/app/assets/javascripts/backbone/kandan.js.coffee b/app/assets/javascripts/backbone/kandan.js.coffee
index 624e1547..0c4f38f4 100644
--- a/app/assets/javascripts/backbone/kandan.js.coffee
+++ b/app/assets/javascripts/backbone/kandan.js.coffee
@@ -24,6 +24,7 @@ window.Kandan =
registerPlugins: ->
plugins = [
"UserList"
+ ,"Pastie"
,"Mentions"
,"Notifications"
,"MusicPlayer"
@@ -31,7 +32,6 @@ window.Kandan =
,"VimeoEmbed"
,"ImageEmbed"
,"LinkEmbed"
- ,"Pastie"
,"Attachments"
,"MeAnnounce"
,"Emoticons"
diff --git a/app/assets/javascripts/backbone/modifiers.js.coffee b/app/assets/javascripts/backbone/modifiers.js.coffee
index 5c28e362..efc2835f 100644
--- a/app/assets/javascripts/backbone/modifiers.js.coffee
+++ b/app/assets/javascripts/backbone/modifiers.js.coffee
@@ -7,9 +7,10 @@ class Kandan.Modifiers
@all: ()->
@modifiers
- @process: (message, state)->
+ @process: (activity)->
+ message = activity.content
for modifier in @modifiers
- if message.content.match(modifier.regex)!=null
- modified_object = modifier.callback(message, state)
- return modified_object if modified_object != false
- false
\ No newline at end of file
+ if message.match(modifier.regex) != null
+ message = modifier.callback(message, activity)
+
+ return message
\ No newline at end of file
diff --git a/app/assets/javascripts/backbone/plugins/emoticons.js.coffee b/app/assets/javascripts/backbone/plugins/emoticons.js.coffee
index 8c9c872b..d950986e 100644
--- a/app/assets/javascripts/backbone/plugins/emoticons.js.coffee
+++ b/app/assets/javascripts/backbone/plugins/emoticons.js.coffee
@@ -906,13 +906,13 @@ class Kandan.Plugins.Emoticons
}
@init: ()->
- Kandan.Modifiers.register @options.regex, (message, state) =>
- matches = message.content.match(@options.regex)
+ Kandan.Modifiers.register @options.regex, (message, activity) =>
+ matches = message.match(@options.regex)
for match in _.unique(matches)
match = match.trim();
emoticon = @emoticons[match]
if emoticon
- message.content = message.content.replace(match, @options.template(emoticon))
+ message = message.replace(match, @options.template(emoticon))
- return Kandan.Helpers.Activities.buildFromMessageTemplate(message)
+ return message
diff --git a/app/assets/javascripts/backbone/plugins/hex_color_embed.js.coffee b/app/assets/javascripts/backbone/plugins/hex_color_embed.js.coffee
index fb57119f..95fd535e 100644
--- a/app/assets/javascripts/backbone/plugins/hex_color_embed.js.coffee
+++ b/app/assets/javascripts/backbone/plugins/hex_color_embed.js.coffee
@@ -5,9 +5,9 @@ class Kandan.Plugins.HexColorEmbed
template: _.template ''''''
@init: ()->
- Kandan.Modifiers.register @options.regex, (message, state) =>
- for hex in message.content.match(@options.regex)
+ Kandan.Modifiers.register @options.regex, (message, activity) =>
+ for hex in message.match(@options.regex)
replacement = @options.template({hex: hex}) + hex
- message.content = message.content.replace(hex, replacement)
+ message = message.replace(hex, replacement)
- return Kandan.Helpers.Activities.buildFromMessageTemplate(message)
+ return message
diff --git a/app/assets/javascripts/backbone/plugins/image_embed.js.coffee b/app/assets/javascripts/backbone/plugins/image_embed.js.coffee
index 673e3409..9badb725 100644
--- a/app/assets/javascripts/backbone/plugins/image_embed.js.coffee
+++ b/app/assets/javascripts/backbone/plugins/image_embed.js.coffee
@@ -13,17 +13,17 @@ class Kandan.Plugins.ImageEmbed
@init: ()->
- Kandan.Modifiers.register @options.regex, (message, state) =>
- url = message.content.match(@options.regex)[0]
+ Kandan.Modifiers.register @options.regex, (message, activity) =>
+ url = message.match(@options.regex)[0]
fileName = url.split("/").pop()
- comment = $.trim(message.content.split(url).join(""))
+ comment = $.trim(message.split(url).join(""))
subtitle = null
subtitle = comment if comment.length > 0
subtitle ||= fileName
- message.content = @options.template({
+ message = @options.template({
imageUrl: url,
subtitle: subtitle
})
- return Kandan.Helpers.Activities.buildFromMessageTemplate(message)
+ return message
diff --git a/app/assets/javascripts/backbone/plugins/link_embed.js.coffee b/app/assets/javascripts/backbone/plugins/link_embed.js.coffee
index e1cb84f2..f2ce58f4 100644
--- a/app/assets/javascripts/backbone/plugins/link_embed.js.coffee
+++ b/app/assets/javascripts/backbone/plugins/link_embed.js.coffee
@@ -1,10 +1,9 @@
class Kandan.Plugins.LinkEmbed
@options:
- regex: /(http?\S*)/g
+ regex: /(^| )(http?\S*)/g
@init: ()->
- Kandan.Modifiers.register @options.regex, (message, state)=>
- message.content = message.content
- .replace(@options.regex, '$1')
- return Kandan.Helpers.Activities.buildFromMessageTemplate(message)
+ Kandan.Modifiers.register @options.regex, (message, activity)=>
+ message = message.replace(@options.regex, '$2')
+ return message
diff --git a/app/assets/javascripts/backbone/plugins/me_announce.js.coffee b/app/assets/javascripts/backbone/plugins/me_announce.js.coffee
index 71b7ae4c..b907fb59 100644
--- a/app/assets/javascripts/backbone/plugins/me_announce.js.coffee
+++ b/app/assets/javascripts/backbone/plugins/me_announce.js.coffee
@@ -4,7 +4,7 @@ class Kandan.Plugins.MeAnnounce
regex: /^/me /
@init: ()->
- Kandan.Modifiers.register @options.regex, (message, state) =>
- actor = message.user.username || message.user.email
- message.content = message.content.replace @options.regex, "#{actor} "
- return Kandan.Helpers.Activities.buildFromBaseTemplate(message)
+ Kandan.Modifiers.register @options.regex, (message, activity) =>
+ actor = activity.user.username || activity.user.email
+ message = message.replace @options.regex, "#{actor} "
+ return message
diff --git a/app/assets/javascripts/backbone/plugins/mentions.coffee b/app/assets/javascripts/backbone/plugins/mentions.coffee
index 1280e8c1..df01920d 100644
--- a/app/assets/javascripts/backbone/plugins/mentions.coffee
+++ b/app/assets/javascripts/backbone/plugins/mentions.coffee
@@ -10,12 +10,12 @@ class Kandan.Plugins.Mentions
Kandan.Data.ActiveUsers.registerCallback "change", (data)=>
@initUsersMentions(data.extra.active_users)
- Kandan.Modifiers.register @options.regex, (message, state) =>
- for mention in message.content.match(@options.regex)
+ Kandan.Modifiers.register @options.regex, (message, activity) =>
+ for mention in message.match(@options.regex)
replacement = @options.template({mention: mention})
- message.content = message.content.replace(mention, replacement)
+ message = message.replace(mention, replacement)
- return Kandan.Helpers.Activities.buildFromMessageTemplate(message)
+ return message
@initUsersMentions: (activeUsers)->
users = _.map activeUsers, (user)->
diff --git a/app/assets/javascripts/backbone/plugins/music_player.js.coffee b/app/assets/javascripts/backbone/plugins/music_player.js.coffee
index 5f503186..1b7a3058 100644
--- a/app/assets/javascripts/backbone/plugins/music_player.js.coffee
+++ b/app/assets/javascripts/backbone/plugins/music_player.js.coffee
@@ -63,15 +63,15 @@ class Kandan.Plugins.MusicPlayer
@registerPlayModifier: ()->
- Kandan.Modifiers.register @playRegex, (message, state) =>
- url = $.trim(message.content.substr(message.content.indexOf(" ") + 1));
- if true and Kandan.Data.Channels.activeChannelId()? # and state == Kandan.Helpers.Activities.ACTIVE_STATE commented out because state == undefined for some reason
+ Kandan.Modifiers.register @playRegex, (message, activity) =>
+ url = $.trim(message.substr(message.indexOf(" ") + 1));
+ if true and Kandan.Data.Channels.activeChannelId()?
rawInput = Kandan.Helpers.Utils.unescape(url)
soundUrl = null
soundUrl = @localSounds(rawInput)
soundUrl ?= rawInput
- @playUrl(message.channel_id, soundUrl)
+ @playUrl(activity.channel_id, soundUrl)
else
console.log "Not playing stale song"
@@ -79,21 +79,21 @@ class Kandan.Plugins.MusicPlayer
return Kandan.Helpers.Activities.buildFromBaseTemplate message
@registerStopModifier: ()->
- Kandan.Modifiers.register @stopRegex, (message, state) =>
- url = $.trim(message.content.substr(message.content.indexOf(" ") + 1));
+ Kandan.Modifiers.register @stopRegex, (message, activity) =>
+ url = $.trim(message.substr(message.indexOf(" ") + 1));
if true and Kandan.Data.Channels.activeChannelId()?
- @stopSound(message.channel_id)
+ @stopSound(activity.channel_id)
- message.content = @stopTemplate()
- return Kandan.Helpers.Activities.buildFromBaseTemplate message
+ message = @stopTemplate()
+ return message
@registerResumeModifier: ()->
- Kandan.Modifiers.register @resumeRegex, (message, state) =>
+ Kandan.Modifiers.register @resumeRegex, (message, activity) =>
if true and Kandan.Data.Channels.activeChannelId()?
- @play(message.channel_id)
+ @play(activity.channel_id)
- message.content = @resumeTemplate()
- return Kandan.Helpers.Activities.buildFromBaseTemplate message
+ message = @resumeTemplate()
+ return message
# TODO display error about song not being added by creating an activity locally
diff --git a/app/assets/javascripts/backbone/plugins/pastie.js.coffee b/app/assets/javascripts/backbone/plugins/pastie.js.coffee
index 2e4cdaa8..42884587 100644
--- a/app/assets/javascripts/backbone/plugins/pastie.js.coffee
+++ b/app/assets/javascripts/backbone/plugins/pastie.js.coffee
@@ -21,7 +21,7 @@ class Kandan.Plugins.Pastie
@init: ->
- Kandan.Modifiers.register @options.regex, (message, state) =>
- url = "/channels/#{message.channel_id}/activities/#{message.id}"
- message.content = @options.template({preview: @truncate(message.content), messageLink: url})
- return Kandan.Helpers.Activities.buildFromMessageTemplate(message)
+ Kandan.Modifiers.register @options.regex, (message, activity) =>
+ url = "/channels/#{activity.channel_id}/activities/#{activity.id}"
+ message = @options.template({preview: @truncate(message), messageLink: url})
+ return message
diff --git a/app/assets/javascripts/backbone/plugins/rgb_color_embed.js.coffee b/app/assets/javascripts/backbone/plugins/rgb_color_embed.js.coffee
index 67629ddd..702102ee 100644
--- a/app/assets/javascripts/backbone/plugins/rgb_color_embed.js.coffee
+++ b/app/assets/javascripts/backbone/plugins/rgb_color_embed.js.coffee
@@ -5,10 +5,10 @@ class Kandan.Plugins.RgbColorEmbed
template: _.template ''''''
@init: ()->
- Kandan.Modifiers.register @options.regex, (message, state) =>
- for rgb in message.content.match(@options.regex)
+ Kandan.Modifiers.register @options.regex, (message, activity) =>
+ for rgb in message.match(@options.regex)
replacement = @options.template({rgb: rgb}) + rgb
- message.content = message.content.replace(rgb, replacement)
+ message = message.replace(rgb, replacement)
- return Kandan.Helpers.Activities.buildFromMessageTemplate(message)
+ return message
diff --git a/app/assets/javascripts/backbone/plugins/vimeo_embed.js.coffee b/app/assets/javascripts/backbone/plugins/vimeo_embed.js.coffee
index 587b87a5..a495a295 100644
--- a/app/assets/javascripts/backbone/plugins/vimeo_embed.js.coffee
+++ b/app/assets/javascripts/backbone/plugins/vimeo_embed.js.coffee
@@ -12,25 +12,25 @@ class Kandan.Plugins.VimeoEmbed
@init: ()->
- Kandan.Modifiers.register @options.regex, (message, state) =>
+ Kandan.Modifiers.register @options.regex, (message, activity) =>
comment = null
# No spaces in message content indicates just a link
- if message.content.indexOf(" ") == -1
- videoUrl = message.content
+ if message.indexOf(" ") == -1
+ videoUrl = message
else
# Spaces indicate a subtitle
- comment = $.trim(message.content.substr(message.content.indexOf(" ") + 1));
- videoUrl = message.content.split(" ")[0]
+ comment = $.trim(message.substr(message.indexOf(" ") + 1));
+ videoUrl = message.split(" ")[0]
- videoId = message.content.match(@options.regex)[2]
+ videoId = message.match(@options.regex)[2]
subtitle = null
subtitle = "Vimeo: #{comment}" if comment? and comment.length > 0
subtitle ||= videoUrl
- message.content = @options.template({
+ message = @options.template({
videoId: videoId,
subtitle: subtitle
})
- return Kandan.Helpers.Activities.buildFromMessageTemplate(message)
+ return message
diff --git a/app/assets/javascripts/backbone/plugins/youtube_embed.js.coffee b/app/assets/javascripts/backbone/plugins/youtube_embed.js.coffee
index b1418eeb..579011e9 100644
--- a/app/assets/javascripts/backbone/plugins/youtube_embed.js.coffee
+++ b/app/assets/javascripts/backbone/plugins/youtube_embed.js.coffee
@@ -1,7 +1,7 @@
class Kandan.Plugins.YouTubeEmbed
@options:
- regex: /^http(s)?.+www.youtube.com.+watch/i
+ regex: /http(s)?.+www.youtube.com.+watch/i
idRegex: /\Wv=([\w|\-]*)/
template: _.template '''
@@ -16,24 +16,24 @@ class Kandan.Plugins.YouTubeEmbed
@init: ()->
- Kandan.Modifiers.register @options.regex, (message, state) =>
+ Kandan.Modifiers.register @options.regex, (message, activity) =>
comment = null
# No spaces in message content indicates just a link
- if message.content.indexOf(" ") == -1
- videoUrl = message.content
+ if message.indexOf(" ") == -1
+ videoUrl = message
else
# Spaces indicate a subtitle
- comment = $.trim(message.content.substr(message.content.indexOf(" ") + 1));
+ comment = $.trim(message.substr(message.indexOf(" ") + 1));
- videoId = message.content.match(@options.idRegex)[1]
+ videoId = message.match(@options.idRegex)[1]
subtitle = null
- subtitle = "Youtube: #{comment}" if comment? and comment.length > 0
+ subtitle = "#{comment}" if comment? and comment.length > 0
subtitle ||= videoUrl
- message.content = @options.template({
+ message = @options.template({
videoId: videoId,
subtitle: subtitle
})
- return Kandan.Helpers.Activities.buildFromMessageTemplate(message)
+ return message
diff --git a/app/assets/javascripts/backbone/views/show_activity.js.coffee b/app/assets/javascripts/backbone/views/show_activity.js.coffee
index 27e273c2..1c85b0e5 100644
--- a/app/assets/javascripts/backbone/views/show_activity.js.coffee
+++ b/app/assets/javascripts/backbone/views/show_activity.js.coffee
@@ -10,11 +10,9 @@ class Kandan.Views.ShowActivity extends Backbone.View
if activity.action != "message"
@compiledTemplate = JST['user_notification']({activity: activity})
else
- modifiedMessage = Kandan.Modifiers.process(activity, @options.state)
- if modifiedMessage != false
- @compiledTemplate = modifiedMessage
- else
- @compiledTemplate = Kandan.Helpers.Activities.buildFromMessageTemplate activity
+ activity.content = Kandan.Modifiers.process(activity)
+
+ @compiledTemplate = Kandan.Helpers.Activities.buildFromMessageTemplate activity
$(@el).data("activity-id", activity.id)
if activity.action == "message"