Skip to content

Commit

Permalink
Merge branch 'master' of github.com:Bushido/Kandan
Browse files Browse the repository at this point in the history
  • Loading branch information
kevzettler committed Apr 12, 2012
2 parents 2d2ca54 + cb14e84 commit 0689f02
Show file tree
Hide file tree
Showing 7 changed files with 48 additions and 21 deletions.
22 changes: 14 additions & 8 deletions app/assets/javascripts/backbone/plugins/image_embed.js.coffee
Original file line number Diff line number Diff line change
@@ -1,21 +1,27 @@
class Kandan.Plugins.ImageEmbed
@image_regex: /^http.*\.(jpg|jpeg|gif|png)/i

@image_regex: /http.*\.(jpg|jpeg|gif|png)/i

@image_template: _.template '''
<div class="image-preview">
<a target="_blank" href="<%= image_url %>">
<img class="image-embed" src="<%= image_url %>" height="200" width="200" />
</a>
<div class="name"><%= name %></div>
<div class="name"><%= subtitle %></div>
</div>
'''

@init: ()->
Kandan.Modifiers.register @image_regex, (message, state)=>
file_name = message.content.split("/").pop()
Kandan.Modifiers.register @image_regex, (message, state) =>
url = message.content.match(@image_regex)[0]
fileName = url.split("/").pop()
comment = $.trim(message.content.split(url).join(""))
subtitle = null
subtitle = comment if comment.length > 0
subtitle ||= fileName

message.content = @image_template({
image_url: message.content,
name: file_name
image_url: url,
subtitle: subtitle
})
return Kandan.Helpers.Activities.build_from_message_template(message)

return Kandan.Helpers.Activities.build_from_message_template(message)
7 changes: 4 additions & 3 deletions app/assets/javascripts/backbone/plugins/me_announce.js.coffee
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
class Kandan.Plugins.MeAnnounce

@regex: /^\/me /
@regex: /^&#x2F;me /

@init: ()->
Kandan.Modifiers.register @regex, (message, state)=>
Kandan.Modifiers.register @regex, (message, state) =>
actor = message.user.first_name || message.user.email
message.content = message.content.replace @regex, "#{message.user.first_name} "
return Kandan.Helpers.Activities.build_from_base_template(message)

# Kandan.Plugins.register "Kandan.Plugins.MeAnnounce"
# Kandan.Plugins.register "Kandan.Plugins.MeAnnounce"
27 changes: 22 additions & 5 deletions app/assets/javascripts/backbone/plugins/youtube_embed.js.coffee
Original file line number Diff line number Diff line change
@@ -1,22 +1,39 @@
class Kandan.Plugins.YouTubeEmbed

@youtube_regex: /^http(s)?:\/\/www.youtube.com\/watch/i
@youtube_regex: /^http(s)?.+www.youtube.com.+watch/i
@youtube_id_regex: /\Wv=([\w|\-]*)/

@youtube_embed_template: _.template '''
<div class="youtube-preview">
<a target="_blank" class="youtube-preview-link" href="<%= video_url %>">
<img class="youtube-preview-image" src="<%= thumb_url %>" />
</a>
<div class="name"><%= subtitle %></div>
</div>
'''

@init: ()->
Kandan.Modifiers.register @youtube_regex, (message, state)=>
Kandan.Modifiers.register @youtube_regex, (message, state) =>
comment = null

# No spaces in message content indicates just a link
if message.content.indexOf(" ") == -1
video_url = message.content
else
# Spaces indicate a subtitle
comment = $.trim(message.content.substr(message.content.indexOf(" ") + 1));
video_url = message.content.split(" ")[0]

video_id = message.content.match(@youtube_id_regex)[1]
thumb_url = "http://img.youtube.com/vi/#{ video_id }/0.jpg"

subtitle = null
subtitle = "Youtube: #{comment}" if comment? and comment.length > 0
subtitle ||= video_url

message.content = @youtube_embed_template({
video_url: message.content,
thumb_url: thumb_url
video_url: video_url,
thumb_url: thumb_url,
subtitle: subtitle
})
return Kandan.Helpers.Activities.build_from_message_template(message)
return Kandan.Helpers.Activities.build_from_message_template(message)
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,17 @@ class Kandan.Views.ShowActivity extends Backbone.View
render: ()->
activity = @options.activity.toJSON()
activity.created_at = Kandan.Helpers.Utils.time_to_string(new Date(activity.created_at))
console.log("Rendering activity:")
activity.content = _.escape(activity.content)
console.log(activity)
if activity.action != "message"
@compiled_template = JST['user_notification']({activity: activity})
else
modified_message = Kandan.Modifiers.process(activity, @options.state)
if modified_message != false
@compiled_template = modified_message
else
@compiled_template = Kandan.Helpers.Activities.build_from_message_template $.extend(activity, {content: _.escape(activity.content)})
@compiled_template = Kandan.Helpers.Activities.build_from_message_template activity

$(@el).data('activity_id', activity.id)
$(@el).attr('id', "activity-#{activity.id}")
Expand Down
2 changes: 1 addition & 1 deletion app/assets/templates/user_notification.jst.eco
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<span class="user">Kandan bot</span>

<span class="content">
<%= @activity.user.first_name %> <%= @activity.action %>ed <%- "<a href='#{@activity.content}'>#{@activity.content}</a>" if @activity.action == "upload" %>
<%= @activity.user.first_name || @activity.user.email %> <%= @activity.action %>ed <%- "<a href='#{@activity.content}'>#{@activity.content}</a>" if @activity.action == "upload" %>
</span>
</div>

2 changes: 1 addition & 1 deletion app/controllers/channels_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ def index
more_activities = (channel.activities.count > Kandan::Config.options[:per_page])
channel.activities.order('id DESC').includes(:user).page.each do |activity|
activities.push activity.attributes.merge({
:user => activity.user.as_json(:only => [:id, :ido_id, :first_name, :last_name, :gravatar_hash, :active, :locale])
:user => activity.user.as_json(:only => [:id, :ido_id, :email, :first_name, :last_name, :gravatar_hash, :active, :locale])
})
end

Expand Down
4 changes: 2 additions & 2 deletions app/models/activity_observer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ def after_save(activity)
def message_broadcast_data(activity)
faye_channel = "/channels/#{activity.channel.to_param}"
broadcast_data = activity.attributes.merge({
:user => activity.user.attributes,
:user => activity.user.as_json(:only => [:id, :ido_id, :email, :first_name, :last_name, :gravatar_hash, :active, :locale]),
:channel => activity.channel.attributes
})
[faye_channel, broadcast_data]
Expand All @@ -22,7 +22,7 @@ def upload_broadcast_data(activity)
broadcast_data = {
:event => "attachment#upload",
:entity => activity.attributes.merge({
:user => activity.user.attributes,
:user => activity.user.as_json(:only => [:id, :ido_id, :email, :first_name, :last_name, :gravatar_hash, :active, :locale]),
:channel => activity.channel.attributes
}),
:extra => {
Expand Down

0 comments on commit 0689f02

Please sign in to comment.