Commit 1eae7787 authored by Paul Asmuth's avatar Paul Asmuth
Browse files

Merge pull request #32 from kazjote/user_feed

User feed. LOVE IT! :)
parents 263f429f 3a49291a
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -97,6 +97,8 @@ class FnordMetric::App < Sinatra::Base

    events = if params[:type] 
      current_namespace.events(:by_type, :type => params[:type])
    elsif params[:session_key]
      current_namespace.events(:by_session_key, :session_key => params[:session_key])
    else 
      find_opts = { :limit => 100 }
      find_opts.merge!(:since => params[:since].to_i+1) if params[:since]
+68 −60
Original line number Diff line number Diff line
class FnordMetric::Event  
module FnordMetric
  class Event  

    attr_accessor :time, :type, :event_id

@@ -27,6 +28,13 @@ class FnordMetric::Event
      end
    end

    def self.by_session_key(_session_key, opts)
      session = Session.find(_session_key, opts)
      session.fetch_event_ids!(200).reject(&:blank?).map do |event_id|
        find(event_id, opts)
      end
    end

    def self.find(event_id, opts)
      self.new(event_id, opts).tap do |event|
        event.fetch!
@@ -74,5 +82,5 @@ class FnordMetric::Event
        :_time => @time
      )
    end

  end
end
+1 −0
Original line number Diff line number Diff line
@@ -77,6 +77,7 @@ class FnordMetric::Namespace
  def events(_ids, opts={})
    return FnordMetric::Event.all(extend_opts(opts)) if _ids == :all
    return FnordMetric::Event.by_type(opts.delete(:type), extend_opts(opts)) if _ids == :by_type
    return FnordMetric::Event.by_session_key(opts.delete(:session_key), extend_opts(opts)) if _ids == :by_session_key
  end

  def method_missing(m, *args, &block)
+3 −2
Original line number Diff line number Diff line
@@ -89,6 +89,7 @@ class FnordMetric::Session

  def add_event(event)    
    @redis.zadd(redis_key(:events), event[:_time], event[:_eid])    

    add_data(:_picture, event[:url]) if event[:_type] == "_set_picture"    
    add_data(:_name, event[:name]) if event[:_type] == "_set_name"    
    add_event_data(event) if event[:_type] == "_set_data" 
@@ -125,7 +126,7 @@ class FnordMetric::Session

  def fetch_event_ids!(since=-1)
    # FIXME: use WITHSCORE to get the timestamps and return event objects
    @event_ids = @redis.zrange(redis_key(:events), 0, since)
    @event_ids = @redis.zrevrange(redis_key(:events), 0, since)
  end

end
+5 −2
Original line number Diff line number Diff line
@@ -107,11 +107,14 @@ text-shadow: 1px 0px 2px rgba(255, 255, 255, 1);


ul.session_list{ list-style-type:none; margin:0; padding:9px 16px 0 11px; }
ul.session_list li{ color:#0A0A0A; margin-bottom:10px; height:18px; overflow:hidden; line-height:18px; padding:4px; }
ul.session_list li{ color:#0A0A0A; height:32px; overflow:hidden; line-height:18px; padding:4px; }
ul.session_list li:hover{ background:#eee; cursor:pointer; }
ul.session_list li input{ float: left; margin-right: 7px; }
ul.session_list li .picture{ height:18px; width:18px; float:left; background:#333; overflow:hidden; }
ul.session_list li .name{ float:left; width:120px; overflow:hidden; margin-left:10px; font-size:12px; }
ul.session_list li .time{ float:right; width:40px; overflow:hidden; text-align:right; font-size:10px; }
ul.session_list li .history{ float:right; color:#999; font-size:10px; line-height: 12px;}
ul.session_list li .history:hover{ color:#333; text-decoration:underline; }

.sessions_feed{ min-width:300px; min-height:100px; float:left; }
.sessions_feed ul.feed_inner{ margin:5px 15px; min-height:100px; padding:0px; }
Loading