cirandas.net

ref: master

app/models/spammer_logger.rb


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class SpammerLogger < Logger
  @logpath = Rails.root.join('log', "#{ENV['RAILS_ENV']}_spammers.log")
  @logger = new(@logpath)

  def self.log(spammer_ip, object=nil)
    if object
      if object.kind_of?(Comment)
        @logger << "[#{Time.now.strftime('%F %T %z')}] Comment-id: #{object.id} IP: #{spammer_ip}\n"
      elsif object.kind_of?(SuggestArticle)
        @logger << "[#{Time.now.strftime('%F %T %z')}] SuggestArticle-id: #{object.id} IP: #{spammer_ip}\n"
      end
    else
        @logger << "[#{Time.now.strftime('%F %T %z')}] IP: #{spammer_ip}\n"
    end
  end

  def self.clean_log
    File.delete(@logpath) if File.exists?(@logpath)
  end

  def self.reload_log
    clean_log
    @logger = new(@logpath)
  end

end