Sha256: eb225fb53e0150c4ccbefd4431d492903a5c2a1d1b325b632ec16ec019f2db0b
Contents?: true
Size: 1.49 KB
Versions: 1
Compression:
Stored size: 1.49 KB
Contents
require 'net/http' require 'uri' class Akismet version = YAML.load_file(File.join(File.dirname(__FILE__), '..', 'VERSION.yml')) version = "#{version[:major]}.#{version[:minor]}.#{version[:patch]}" USER_AGENT = "Akismet-rb/#{version} | Akismet/1.11" def initialize(key, url) @key = key @url = url end def verify? @verified = do_verify unless @verified @verified end def do_verify response = Net::HTTP.start('rest.akismet.com', 80) do |http| http.post('/1.1/verify-key', post_data(:key => @key, :blog => @url), {'User-Agent' => USER_AGENT}) end case response.body when "invalid" raise Akismet::VerifyException, response.to_hash["x-akismet-debug-help"], caller when "valid" true end end def submit_spam(args) call_akismet('submit-spam', args) end def submit_ham(args) call_akismet('submit-ham', args) end def spam?(args) call_akismet('comment-check', args) end def ham?(args) !spam?(args) end def call_akismet(method, args) args.update(:blog => @url) response = Net::HTTP.start("#{@key}.rest.akismet.com", 80) do |http| http.post("/1.1/#{method}", post_data(args), {'User-Agent' => USER_AGENT}) end case response.body when "true" true when "false" false end end def post_data(hash) hash.inject([]) do |memo, hash| k, v = hash memo << "#{k}=#{URI.escape(v)}" end.join('&') end class VerifyException < Exception; end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mikehale-akismet-0.0.3 | lib/akismet.rb |