Skip to content

Commit

Permalink
Adds perfectly working 007-style user spying
Browse files Browse the repository at this point in the history
Signed-off-by: Akash Manohar J <akash@akash.im>
  • Loading branch information
HashNuke committed Mar 12, 2012
1 parent ec9b415 commit 9d521c3
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 9 deletions.
8 changes: 5 additions & 3 deletions app/assets/javascripts/backbone/broadcasters/faye.js.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,16 @@ class Kandan.Broadcasters.FayeBroadcaster
}
@faye_client.addExtension(auth_extension)
@faye_client.subscribe "/app/activities", (data)=>
console.log "activities", data.data.user
console.log "activities", data
Kandan.Helpers.Channels.add_activity({
user: data,
user: data.data.user,
action: data.event.split("#")[1]
})


subscribe: (channel)->
console.log "Subscribing to #{channel}"
@faye_client.subscribe channel, (data)=>
subscription = @faye_client.subscribe channel, (data)=>
Kandan.Helpers.Channels.add_activity(data)
subscription.errback ()->
console.log "Oops! could not connect to the server"
13 changes: 11 additions & 2 deletions app/assets/javascripts/backbone/helpers/channels.js.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,17 @@ class Kandan.Helpers.Channels
.eq(@selected_tab())
.data('channel_id')

# TODO refactor this
@add_activity: (activity_attributes)->
activity = new Kandan.Models.Activity(activity_attributes)
activity_view = new Kandan.Views.ShowActivity({activity: activity})
@channel_el(activity.get('channel_id'))
.append(activity_view.render().el)
if activity.get('channel_id')
@channel_el(activity.get('channel_id'))
.append(activity_view.render().el)
else
$channel_elements = $("#channels .ui-tabs-panel")
for el in $channel_elements
console.log "appending to", $(el).attr('id')
activity = new Kandan.Models.Activity(activity_attributes)
activity_view = new Kandan.Views.ShowActivity({activity: activity})
$(el).append(activity_view.render().el)
10 changes: 6 additions & 4 deletions lib/active_users.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,20 @@ class ActiveUsers
class << self

def add(client_id, user)
publish_message "connected", user if not find_by_user_id(user.id)
@@users[client_id] = user
if not find_by_user_id(user.id)
@@users[client_id] = user
publish_message "connected", user
end
end

def remove_by_client_id(client_id)
disconnected_user = @@users.delete(client_id)
publish_message "disconnected", disconnected_user if not find_by_user_id(disconnected_user.id)
publish_message "disconnected", disconnected_user if disconnected_user
end

def remove_by_user_id(user_id)
client_id = find_by_user_id(user_id)
if not client_id
if client_id
remove_by_client_id(client_id)
return true
end
Expand Down

0 comments on commit 9d521c3

Please sign in to comment.