openstreetmap-website/script/update-spam-blocks
Tom Hughes dd64ba2e7e Add script to update spam block ACLs
Maintain a set of ACLs which block account creation for an IP address
which has had more than two users suspended or removed in the last 28 days.
2010-05-08 17:49:27 +01:00

48 lines
909 B
Ruby
Executable file

#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../config/environment'
require 'generator'
addresses = User.count(
:conditions => {
:status => ["suspended", "deleted"],
:creation_time => Time.now - 28.days .. Time.now
},
:group => :creation_ip
)
addresses.each do |address,count|
if count > 2
acl = Acl.find(:first, :conditions => {
:address => address,
:netmask => "255.255.255.255"
})
unless acl
Acl.create(
:address => address,
:netmask => "255.255.255.255",
:k => "no_account",
:v => "auto_spam_block"
)
puts "Blocked #{address}"
end
end
end
acls = Acl.find(:all, :conditions => {
:netmask => "255.255.255.255",
:k => "no_account_creation",
:v => "auto_spam_block"
})
acls.each do |acl|
unless addresses[acl.address]
acl.delete
puts "Unblocked #{acl.address}"
end
end
exit 0