Add tasks for new proxy system

This commit is contained in:
Kyle Drake 2014-08-13 15:07:46 -07:00
parent 4fe339f51f
commit 89998e2f18

View file

@ -15,35 +15,39 @@ task :default => :test
desc "parse logs"
task :parse_logs => [:environment] do
hits = {}
visits = {}
visit_ips = {}
Dir["/home/web/proxy/logs/*.log"].each do |log_path|
hits = {}
visits = {}
visit_ips = {}
logfile = File.open '/var/log/nginx/neocities-sites.log.1', 'r'
logfile = File.open log_path, 'r'
while hit = logfile.gets
time, username, size, path, ip = hit.split ' '
while hit = logfile.gets
time, username, size, path, ip = hit.split ' '
hits[username] ||= 0
hits[username] += 1
hits[username] ||= 0
hits[username] += 1
visit_ips[username] = [] if !visit_ips[username]
visit_ips[username] = [] if !visit_ips[username]
unless visit_ips[username].include?(ip)
visits[username] ||= 0
visits[username] += 1
visit_ips[username] << ip
unless visit_ips[username].include?(ip)
visits[username] ||= 0
visits[username] += 1
visit_ips[username] << ip
end
end
end
logfile.close
logfile.close
hits.each do |username,hitcount|
DB['update sites set hits=hits+? where username=?', hitcount, username].first
end
hits.each do |username,hitcount|
DB['update sites set hits=hits+? where username=?', hitcount, username].first
end
visits.each do |username,visitcount|
DB['update sites set views=views+? where username=?', visitcount, username].first
visits.each do |username,visitcount|
DB['update sites set views=views+? where username=?', visitcount, username].first
end
FileUtils.rm log_path
end
end
@ -79,3 +83,8 @@ task :update_blocked_ips => [:environment] do
end
end
end
desc 'Compile domain map for nginx'
task :compile_domain_map => [:environment] do
File.open('./files/map.txt', 'w'){|f| Site.exclude(domain: nil).exclude(domain: '').select(:username,:domain).all.collect {|s| f.write "#{s.domain} #{s.username};\n" }}
end