]> git.openstreetmap.org Git - rails.git/blobdiff - script/update-spam-blocks
Teach database structure normalise to ignore btree_gist comment
[rails.git] / script / update-spam-blocks
index 89bccf1c9251b40cd4c10ca4481c05601ba461ab..b5656f6ac0b5b7aad20208084b990789985fdc9b 100755 (executable)
@@ -1,32 +1,27 @@
 #!/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 => %w(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
 )
 
 addresses.each do |address, count|
-  if count > 1
-    acl = Acl.find(:first, :conditions => {
-                     :address => address
-                   })
-
-    unless acl
-      Acl.create({
-                   :address => address,
-                   :k => "no_account_creation",
-                   :v => "auto_spam_block"
-                 }, { :without_protection => true })
-
-      puts "Blocked #{address}"
-    end
-  end
+  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 => {
@@ -35,11 +30,11 @@ acls = Acl.find(:all, :conditions => {
                 })
 
 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