mirror of
https://github.com/neocities/neocities.git
synced 2025-04-24 17:22:35 +02:00
Add tasks for new proxy system
This commit is contained in:
parent
4fe339f51f
commit
89998e2f18
1 changed files with 29 additions and 20 deletions
49
Rakefile
49
Rakefile
|
@ -15,35 +15,39 @@ task :default => :test
|
||||||
|
|
||||||
desc "parse logs"
|
desc "parse logs"
|
||||||
task :parse_logs => [:environment] do
|
task :parse_logs => [:environment] do
|
||||||
hits = {}
|
Dir["/home/web/proxy/logs/*.log"].each do |log_path|
|
||||||
visits = {}
|
hits = {}
|
||||||
visit_ips = {}
|
visits = {}
|
||||||
|
visit_ips = {}
|
||||||
|
|
||||||
logfile = File.open '/var/log/nginx/neocities-sites.log.1', 'r'
|
logfile = File.open log_path, 'r'
|
||||||
|
|
||||||
while hit = logfile.gets
|
while hit = logfile.gets
|
||||||
time, username, size, path, ip = hit.split ' '
|
time, username, size, path, ip = hit.split ' '
|
||||||
|
|
||||||
hits[username] ||= 0
|
hits[username] ||= 0
|
||||||
hits[username] += 1
|
hits[username] += 1
|
||||||
|
|
||||||
visit_ips[username] = [] if !visit_ips[username]
|
visit_ips[username] = [] if !visit_ips[username]
|
||||||
|
|
||||||
unless visit_ips[username].include?(ip)
|
unless visit_ips[username].include?(ip)
|
||||||
visits[username] ||= 0
|
visits[username] ||= 0
|
||||||
visits[username] += 1
|
visits[username] += 1
|
||||||
visit_ips[username] << ip
|
visit_ips[username] << ip
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
logfile.close
|
logfile.close
|
||||||
|
|
||||||
hits.each do |username,hitcount|
|
hits.each do |username,hitcount|
|
||||||
DB['update sites set hits=hits+? where username=?', hitcount, username].first
|
DB['update sites set hits=hits+? where username=?', hitcount, username].first
|
||||||
end
|
end
|
||||||
|
|
||||||
visits.each do |username,visitcount|
|
visits.each do |username,visitcount|
|
||||||
DB['update sites set views=views+? where username=?', visitcount, username].first
|
DB['update sites set views=views+? where username=?', visitcount, username].first
|
||||||
|
end
|
||||||
|
|
||||||
|
FileUtils.rm log_path
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -79,3 +83,8 @@ task :update_blocked_ips => [:environment] do
|
||||||
end
|
end
|
||||||
end
|
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
|
Loading…
Add table
Reference in a new issue