diff --git a/Rakefile b/Rakefile index 6bd93497..7f28a44f 100644 --- a/Rakefile +++ b/Rakefile @@ -65,13 +65,25 @@ 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| + 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' diff --git a/models/site.rb b/models/site.rb index 6202c4a0..f7fd2ba5 100644 --- a/models/site.rb +++ b/models/site.rb @@ -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? diff --git a/views/dashboard.erb b/views/dashboard.erb index 73633e20..7b8d7a52 100644 --- a/views/dashboard.erb +++ b/views/dashboard.erb @@ -172,7 +172,7 @@ <% if file[:is_directory] %> <% else %> - + <% end %> diff --git a/views/plan/_compare.erb b/views/plan/_compare.erb index 0a9ac813..3ffb1a56 100644 --- a/views/plan/_compare.erb +++ b/views/plan/_compare.erb @@ -141,6 +141,20 @@ + + + Hotlinking Support + + + + + + + Cross Origin (CORS) Support + + + +