blob: fb4fca0b9567c1bd1b541f9a7421c22bdf6d6c87 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
require 'killjoy'
require 'sinatra'
require 'tilt/erb'
set :bind, '0.0.0.0'
set :port, 9292
set :views, settings.root + '/web/views'
Killjoy::Startup.new(Spank::Container.new).run do |container|
Spank::IOC.bind_to(container)
Spank::IOC.resolve(:session).execute("select * from system.hints;")
end
message_bus = Killjoy::MessageBus.new
helpers do
def h(text)
Rack::Utils.escape_html(text)
end
end
get '/' do
@logs = Killjoy::LogLine.all
erb :index
end
get '/ip/:ipaddress' do
@ipaddress = IPAddr.new(params['ipaddress'])
@logs = Killjoy::LogLine.from_ip(@ipaddress)
erb :index
end
get '/ping' do
message = Killjoy::LogLine.new(
http_status: 200,
http_verb: request["REQUEST_METHOD"],
http_version: request["SERVER_PROTOCOL"],
ipaddress: request["REMOTE_HOST"],
timestamp: DateTime.now.to_time.to_i,
url: request["PATH_INFO"],
user_agent: request["HTTP_USER_AGENT"],
)
Killjoy::Publisher.new(message_bus).publish(message)
"Hello World!"
end
|