X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/64f373dc598e9c672e1575622f2fc76c29655b8d..557401e78f5025b2f49004dad2647495eae1b0c6:/script/update-spam-blocks diff --git a/script/update-spam-blocks b/script/update-spam-blocks index 903fc9b8a..7d6654545 100755 --- a/script/update-spam-blocks +++ b/script/update-spam-blocks @@ -1,48 +1,40 @@ #!/usr/bin/env ruby -require File.dirname(__FILE__) + '/../config/environment' -require 'generator' +require File.join(File.dirname(__FILE__), "..", "config", "environment") +require "generator" addresses = User.count( :conditions => { - :status => ["suspended", "deleted"], - :creation_time => Time.now - 28.days .. Time.now + :status => %w[suspended deleted], + :creation_time => Time.now.utc - 28.days..Time.now.utc }, - :group => :creation_ip + :group => :creation_address ) -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_creation", - :v => "auto_spam_block" - ) - - puts "Blocked #{address}" - end - end +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 => { - :netmask => "255.255.255.255", - :k => "no_account_creation", - :v => "auto_spam_block" -}) + :k => "no_account_creation", + :v => "auto_spam_block" + }) acls.each do |acl| - unless addresses[acl.address] - acl.delete + next if addresses[acl.address] + + acl.delete - puts "Unblocked #{acl.address}" - end + puts "Unblocked #{acl.address}" end exit 0