add bandwidth to table
This commit is contained in:
parent
d27fc0d210
commit
96e31c2479
23
bandwidth.rb
Normal file
23
bandwidth.rb
Normal file
|
@ -0,0 +1,23 @@
|
|||
require 'server_log_parser'
|
||||
require 'filesize'
|
||||
require 'json'
|
||||
|
||||
load 'config.rb'
|
||||
|
||||
parser = ServerLogParser::Parser.new(ServerLogParser::COMBINED)
|
||||
|
||||
bw_sum = Hash.new(0)
|
||||
|
||||
log = `zcat /var/shots/logs/access.log.gz`
|
||||
log.split("\n").each do |line|
|
||||
parsed = parser.parse(line)
|
||||
request = parsed['%r'].split(" ")[1]
|
||||
bytes = parsed['%b'].to_i
|
||||
status = parsed['%>s']
|
||||
|
||||
user = request[1]
|
||||
|
||||
bw_sum[user] += bytes unless user == nil or status != "200"
|
||||
end
|
||||
|
||||
puts JSON.generate(bw_sum.map{|k,v| [NAMES_SHO[k],Filesize.from(v.to_s + 'B').pretty]}.to_h)
|
|
@ -5,6 +5,7 @@
|
|||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" type="text/css" href=<%="#{RES_BASE}style.css"%>>
|
||||
<link rel="icon" type="image/png" href="/favicon.png">
|
||||
</head>
|
||||
<body>
|
||||
<h1>Screenshot statistics for dcav.pw</h1>
|
||||
|
@ -16,10 +17,11 @@
|
|||
<th>Count</th>
|
||||
<th>Size</th>
|
||||
<th>Average size</th>
|
||||
<th>Bandwidth</th>
|
||||
</tr>
|
||||
<% order = 0
|
||||
users.sort.each do |user|
|
||||
order += 1
|
||||
order += 1
|
||||
%>
|
||||
<%= %Q{
|
||||
<tr>
|
||||
|
@ -28,6 +30,7 @@
|
|||
<td class=\"right-align\">#{user.count}</td>
|
||||
<td class=\"right-align\">#{Filesize.from(user.size.to_s + "B").pretty}</td>
|
||||
<td class=\"right-align\">#{Filesize.from(user.avgsize.to_s + "B").pretty}</td>
|
||||
<td class=\"right-align\">#{user.bandwidth.to_s}</td>
|
||||
</tr>}
|
||||
%>
|
||||
<% end %>
|
||||
|
|
10
gen_index.rb
10
gen_index.rb
|
@ -1,5 +1,6 @@
|
|||
require 'erb'
|
||||
require 'filesize'
|
||||
require 'json'
|
||||
|
||||
load 'config.rb'
|
||||
|
||||
|
@ -8,8 +9,10 @@ shot_dir = SHOT_DIR
|
|||
erb_file = ERB_FILE
|
||||
html_file = HTML_FILE
|
||||
|
||||
bw = JSON.parse(`ruby bandwidth.rb`)
|
||||
|
||||
class User
|
||||
attr_accessor :name, :count, :size, :avgsize
|
||||
attr_accessor :name, :count, :size, :avgsize, :bandwidth
|
||||
def <=> other
|
||||
other.count <=> count
|
||||
end
|
||||
|
@ -26,8 +29,9 @@ usernames.each do |username|
|
|||
.delete("\n")
|
||||
.to_i
|
||||
user.avgsize = user.size / user.count
|
||||
|
||||
users << user
|
||||
user.bandwidth = bw[username]
|
||||
|
||||
users << user
|
||||
end
|
||||
|
||||
File.open(html_file, 'w') do |f|
|
||||
|
|
Loading…
Reference in New Issue
Block a user