class Akismet
Constants
- HOST
- NORMAL_RESPONSES
- PORT
- STANDARD_HEADERS
- TIMEOUT_THRESHOLD
- VALID_RESPONSES
Attributes
Public Class Methods
Create a new instance of the Akismet
class
Arguments¶ ↑
Arguments are provided in the form of a Hash with the following keys (as Symbols) available:
api_key
-
your
Akismet
API key blog
-
the blog associated with your api key
The following keys are available and are entirely optional. They are available incase communication with Akismet's servers requires a proxy port and/or host:
-
proxy_port
-
proxy_host
# File lib/akismet.rb, line 34 def initialize(options) @options = options self.verified_key = false end
Public Instance Methods
# File lib/akismet.rb, line 48 def check_comment(options={}) return false if invalid_options? message = call_akismet('comment-check', options) {:spam => !VALID_RESPONSES.include?(message), :message => message} end
# File lib/akismet.rb, line 44 def invalid_options? false end
This call is intended for the marking of false positives, things that were incorrectly marked as spam. It takes identical arguments as check_comment
and mark_as_spam
.
# File lib/akismet.rb, line 72 def mark_as_ham(options={}) return false if invalid_options? {:message => call_akismet('submit-ham', options)} end
This call is for submitting comments that weren't marked as spam but should have been (i.e. false negatives). It takes identical arguments as check_comment
.
# File lib/akismet.rb, line 64 def mark_as_spam(options={}) return false if invalid_options? {:message => call_akismet('submit-spam', options)} end
# File lib/akismet.rb, line 54 def spam?(options = {}) if resp = check_comment(options) return resp[:spam] end false end
Returns true
if the API key has been verified, false
otherwise
# File lib/akismet.rb, line 40 def verified? (@verified_key ||= verify_api_key) != :false end
Protected Instance Methods
# File lib/akismet.rb, line 129 def http_post(http, action, options = {}) params = options.map{ |key, val| "#{key}=#{URI.encode(val || '')}"}.join('&') resp = http.post(self.url(action), params, STANDARD_HEADERS) log_request(self.url(action), params, resp) resp.body end
# File lib/akismet.rb, line 136 def url(action) "/1.1/#{action}" end
Call to check and verify your API key. You may then call the verified?
method to see if your key has been validated
# File lib/akismet.rb, line 123 def verify_api_key return :false if invalid_options? value = http_post http_instance, 'verify-key', :key => options[:api_key], :blog => options[:blog] self.verified_key = (value == "valid") ? true : :false end
Private Instance Methods
# File lib/akismet.rb, line 148 def http_instance http = Net::HTTP.new([options[:api_key], HOST].join("."), options[:proxy_host], options[:proxy_port]) http.read_timeout = http.open_timeout = TIMEOUT_THRESHOLD http end
# File lib/akismet.rb, line 142 def log_request(url, data, resp) # end