Module: Cleanweb::Spam

Included in:
Cleanweb
Defined in:
lib/cleanweb/spam.rb

Instance Method Summary collapse

Instance Method Details

#ask_yandexObject



36
37
38
39
# File 'lib/cleanweb/spam.rb', line 36

def ask_yandex
  uri = URI.parse(SPAM_URL)
  Net::HTTP.post_form(uri, spam_params).body
end

#parse_xmlObject



4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/cleanweb/spam.rb', line 4

def parse_xml
  xml = REXML::Document.new(ask_yandex)
  res = []
  begin
    xml.root.elements.each("text") {|e| res << e.attributes["spam-flag"]}
    xml.root.elements.each("links") do |links|
      links.elements.each("link") {|e| res << e.attributes["spam-flag"]}
    end
  rescue
  end
  res.uniq
end

#spam?Boolean

Returns:

  • (Boolean)


17
18
19
20
21
22
23
24
# File 'lib/cleanweb/spam.rb', line 17

def spam?
  results = parse_xml
  if results == ["no"] && !results.empty?
    false
  else
    true
  end
end

#spam_paramsObject



26
27
28
29
30
31
32
33
34
# File 'lib/cleanweb/spam.rb', line 26

def spam_params
  res = {key: @@api_key}
  @params.slice([:ip, :email, :name, :login, :realname]).each do |k, v|
    res.merge!(k: v) if @params[k].present?
  end
  res["subject-plain"] = @subject
  res["body-plain"] = @body
  res
end