Sha256: 7009ab38822dbf9f670b1963950784880113e11a8427912d31f1f854b54ebda6
Contents?: true
Size: 1.9 KB
Versions: 2
Compression:
Stored size: 1.9 KB
Contents
require 'geoip' require 'sinatra' require 'redis' require 'json' require_relative 'backend' class RepsheetVisualizer < Sinatra::Base before do @mount = mount end helpers do def action(ip, blacklist=nil) blacklist = redis_connection.get("#{ip}:repsheet:blacklist") if blacklist.nil? if blacklist.nil? || blacklist == "false" "blacklist" else "allow" end end end def redis_connection host = defined?(settings.redis_host) ? settings.redis_host : "localhost" port = defined?(settings.redis_port) ? settings.redis_port : 6379 Redis.new(:host => host, :port => port) end def geoip_database geoip_database = defined?(settings.geoip_database) ? settings.geoip_database : nil raise "Missing GeoIP database settings" if geoip_database.nil? raise "Could not locate GeoIP database" unless File.exist?(geoip_database) GeoIP.new(settings.geoip_database) end def mount defined?(settings.mount) ? (settings.mount + "/") : "/" end def redis_expiry defined?(settings.redis_expiry) ? (settings.redis_expiry * 60 * 60) : (24 * 60 * 60) end # This is the actual application get '/' do @suspects, @blacklisted = Backend.summary(redis_connection) erb :actors end get '/breakdown' do @data, @aggregate = Backend.breakdown(redis_connection) erb :breakdown end get '/worldview' do @data = Backend.worldview(redis_connection, geoip_database) erb :worldview end get '/activity/:ip' do @ip = params[:ip] @data = Backend.activity(redis_connection) erb :activity end post '/action' do connection = redis_connection if params["action"] == "allow" connection.del("#{params[:ip]}:repsheet:blacklist") else connection.set("#{params[:ip]}:repsheet:blacklist", "true") connection.expire("#{params[:ip]}:repsheet:blacklist", redis_expiry) end redirect back end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
repsheet_visualizer-0.1.8 | lib/repsheet_visualizer/application/app.rb |
repsheet_visualizer-0.1.7 | lib/repsheet_visualizer/application/app.rb |