]> git.openstreetmap.org Git - rails.git/blobdiff - script/update-spam-blocks
fix and improve ability coverage to account for tokens
[rails.git] / script / update-spam-blocks
index eaf7d9dc36574b6c47471e18f73b9157a2232b08..f14905b90cae1c183a7d62e8d36c96c307f1def2 100755 (executable)
@@ -1,48 +1,40 @@
 #!/usr/bin/env ruby
 
-require File.dirname(__FILE__) + '/../config/environment'
-require 'generator'
+require 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 - 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
+addresses.each do |address, count|
+  next unless count > 1
+  next if Acl.where(:address => address).exists?
+
+  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