Sha256: d8de3538555a63e12c2b499d437a76ea65b923b186b17d446b6fa1fe0fee2f12

Contents?: true

Size: 817 Bytes

Versions: 2

Compression:

Stored size: 817 Bytes

Contents

class Splam::Rules::ArmsRace < Splam::Rule
  class << self
    attr_accessor :bad_word_score
  end

  self.bad_word_score = 40

  # This is where you put banned domain names or otherwise
  def run
    shitty_sites = ["inquisitr"]    
    shitty_sites.each do |word|
      results = @body.downcase.scan(word) 
      if results && results.size > 0
        add_score((self.class.bad_word_score ** results.size), "stupid site: '#{word}'")
        @body.scan(/<a[^>]+>(.*?)<\/a>/).each do |match|
          add_score self.class.bad_word_score * 4 * match[0].scan(word).size, "nasty word inside a link: #{word}"
        end
        @body.scan(/<a(.*?)>/).each do |match|
          add_score self.class.bad_word_score * 4 * match[0].scan(word).size, "nasty word inside a URL: #{word}"
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
splam-0.1.1 lib/splam/rules/arms_race.rb
splam-0.1.0 lib/splam/rules/arms_race.rb