supporters intelligence for proxy servers

This commit is contained in:
Kyle Drake 2016-04-13 15:19:54 -07:00
parent f58aa79283
commit 5d4e5ec109
2 changed files with 19 additions and 5 deletions

View file

@ -65,13 +65,27 @@ task :update_blocked_ips => [:environment] do
end
end
desc 'Compile domain map for nginx'
task :compile_domain_map => [:environment] do
desc 'Compile nginx mapfiles'
task :compile_nginx_mapfiles => [:environment] do
File.open('./files/map.txt', 'w') do |file|
Site.exclude(domain: nil).exclude(domain: '').select(:username,:domain).all.collect do |site|
Site.exclude(domain: nil).exclude(domain: '').select(:username,:domain).all.each do |site|
file.write ".#{site.values[:domain]} #{site.username};\n"
end
end
File.open('./files/supporter-map.txt', 'w') do |file|
file.write "hostnames;\n"
file.write "default 0;\n"
Site.select(:username, :domain).exclude(plan_type: 'free').exclude(plan_type: nil).all.each do |parent_site|
sites = [parent_site] + parent_site.children
sites.each do |site|
file.write "#{site.username}.neocities.org 1;\n"
unless site.host.match(/\.neocities\.org$/)
file.write ".#{site.values[:domain]} 1;\n"
end
end
end
end
end
desc 'Produce SSL config package for proxy'

View file

@ -1052,7 +1052,7 @@ class Site < Sequel::Model
((total_space_used.to_f / maximum_space) * 100).round(1)
end
# Note: Change Stat#prune! if you change this business logic.
# Note: Change Stat#prune! and the nginx map compiler if you change this business logic.
def supporter?
owner.plan_type != 'free'
end
@ -1078,7 +1078,7 @@ class Site < Sequel::Model
!values[:plan_type].match(/plan_/).nil?
end
# Note: Change Stat#prune! if you change this business logic.
# Note: Change Stat#prune! and the nginx map compiler if you change this business logic.
def plan_type
return 'supporter' if owner.values[:paypal_active] == true
return 'free' if owner.values[:plan_type].nil?