# File referrercop, line 288
def self.filter_awstats(input, output = $stdout)
  data = input.read

  # Remove the section map (AWStats will regenerate it during the next update).
  data.slice!(REGEXPS[:awstats_map])

  # Extract referrers.
  referrers = data.slice!(REGEXPS[:awstats_pagerefs_extract], 1).strip

  # Filter referrers.
  filtered = Array.new

  referrers.each_line do |line|
    @stats.lines += 1

    # Skip over invalid lines.
    unless line =~ REGEXPS[:awstats_url]
      @stats.invalid += 1
      filtered << line
      next
    end

    # Examine the URL.
    if spam?($1)
      @stats.spam += 1
    else
      @stats.ham += 1
      filtered << line
    end
  end

  # We have to be careful about newlines or AWStats will go all apeshit.
  if filtered.length > 0
    referrers = filtered.join('').strip + "\n"
  else
    referrers = ''
  end

  output.puts data.gsub(REGEXPS[:awstats_pagerefs_replace],
    "BEGIN_PAGEREFS #{filtered.length}\n#{referrers}END_PAGEREFS")
end