openstreetmap-website/script/update-spam-blocks
2022-03-01 22:55:10 +00:00

40 lines
869 B
Ruby
Executable file

#!/usr/bin/env ruby
require File.join(File.dirname(__FILE__), "..", "config", "environment")
require "generator"
addresses = User.count(
:conditions => {
:status => %w[suspended deleted],
:creation_time => Time.now.utc - 28.days..Time.now.utc
},
:group => :creation_ip
)
addresses.each do |address, count|
next unless count > 1
next if Acl.exists?(:address => address)
Acl.create({
:address => address,
:k => "no_account_creation",
:v => "auto_spam_block"
}, { :without_protection => true })
puts "Blocked #{address}"
end
acls = Acl.find(:all, :conditions => {
:k => "no_account_creation",
:v => "auto_spam_block"
})
acls.each do |acl|
next if addresses[acl.address]
acl.delete
puts "Unblocked #{acl.address}"
end
exit 0