#!/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_creation",
        :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