Class: Akismet
- Inherits:
-
Object
- Object
- Akismet
- Defined in:
- lib/hobix/plugin/akismet.rb
Overview
Akismet
- Author
-
David Czarnecki
- Copyright
-
Copyright © 2005 - David Czarnecki
- License
-
BSD
Modified by Dieter Komendera, Sparkling Studios:
append blog= to data string (Akismet said it is required)
changed require 'net/HTTP' to require 'net/http' (to work for me unter GNU/Linux)
Constant Summary collapse
- STANDARD_HEADERS =
{ 'User-Agent' => 'Akismet Ruby API/1.0', 'Content-Type' => 'application/x-www-form-urlencoded' }
Instance Method Summary collapse
-
#commentCheck(user_ip, user_agent, referrer, permalink, comment_type, comment_author, comment_author_email, comment_author_url, comment_content, other) ⇒ Object
This is basically the core of everything.
-
#hasVerifiedKey ⇒ Object
Returns
true
if the API key has been verified,false
otherwise. -
#initialize(blog, apiKey) ⇒ Akismet
constructor
Create a new instance of the Akismet class.
-
#setProxy(proxyHost, proxyPort) ⇒ Object
Set proxy information .
-
#submitHam(user_ip, user_agent, referrer, permalink, comment_type, comment_author, comment_author_email, comment_author_url, comment_content, other) ⇒ Object
This call is intended for the marking of false positives, things that were incorrectly marked as spam.
-
#submitSpam(user_ip, user_agent, referrer, permalink, comment_type, comment_author, comment_author_email, comment_author_url, comment_content, other) ⇒ Object
This call is for submitting comments that weren’t marked as spam but should have been.
-
#verifyAPIKey ⇒ Object
Call to check and verify your API key.
Constructor Details
Instance Method Details
#commentCheck(user_ip, user_agent, referrer, permalink, comment_type, comment_author, comment_author_email, comment_author_url, comment_content, other) ⇒ Object
This is basically the core of everything. This call takes a number of arguments and characteristics about the submitted content and then returns a thumbs up or thumbs down. Almost everything is optional, but performance can drop dramatically if you exclude certain elements.
user_ip (required)
IP address of the comment submitter.
user_agent (required)
User agent information.
referrer (note spelling)
The content of the HTTP_REFERER header should be sent here.
permalink
The permanent location of the entry the comment was submitted to.
comment_type
May be blank, comment, trackback, pingback, or a made up value like "registration".
comment_author
Submitted name with the comment
comment_author_email
Submitted email address
comment_author_url
Commenter URL.
comment_content
The content that was submitted.
Other server enviroment variables
In PHP there is an array of enviroment variables called $_SERVER which contains information about the web server itself as well as a key/value for every HTTP header sent with the request. This data is highly useful to Akismet as how the submited content interacts with the server can be very telling, so please include as much information as possible.
181 182 183 |
# File 'lib/hobix/plugin/akismet.rb', line 181 def commentCheck(user_ip, user_agent, referrer, permalink, comment_type, , , , comment_content, other) return callAkismet('comment-check', user_ip, user_agent, referrer, permalink, comment_type, , , , comment_content, other) end |
#hasVerifiedKey ⇒ Object
Returns true
if the API key has been verified, false
otherwise
115 116 117 |
# File 'lib/hobix/plugin/akismet.rb', line 115 def hasVerifiedKey() return @verifiedKey end |
#setProxy(proxyHost, proxyPort) ⇒ Object
Set proxy information
proxyHost
Hostname for the proxy to use
proxyPort
Port for the proxy
98 99 100 101 |
# File 'lib/hobix/plugin/akismet.rb', line 98 def setProxy(proxyHost, proxyPort) @proxyPort = proxyPort @proxyHost = proxyHost end |
#submitHam(user_ip, user_agent, referrer, permalink, comment_type, comment_author, comment_author_email, comment_author_url, comment_content, other) ⇒ Object
This call is intended for the marking of false positives, things that were incorrectly marked as spam. It takes identical arguments as comment check and submit spam. The call parameters are the same as for the #commentCheck method.
193 194 195 |
# File 'lib/hobix/plugin/akismet.rb', line 193 def submitHam(user_ip, user_agent, referrer, permalink, comment_type, , , , comment_content, other) callAkismet('submit-ham', user_ip, user_agent, referrer, permalink, comment_type, , , , comment_content, other) end |
#submitSpam(user_ip, user_agent, referrer, permalink, comment_type, comment_author, comment_author_email, comment_author_url, comment_content, other) ⇒ Object
This call is for submitting comments that weren’t marked as spam but should have been. It takes identical arguments as comment check. The call parameters are the same as for the #commentCheck method.
187 188 189 |
# File 'lib/hobix/plugin/akismet.rb', line 187 def submitSpam(user_ip, user_agent, referrer, permalink, comment_type, , , , comment_content, other) callAkismet('submit-spam', user_ip, user_agent, referrer, permalink, comment_type, , , , comment_content, other) end |
#verifyAPIKey ⇒ Object
Call to check and verify your API key. You may then call the #hasVerifiedKey method to see if your key has been validated.
104 105 106 107 108 109 110 111 112 |
# File 'lib/hobix/plugin/akismet.rb', line 104 def verifyAPIKey() http = Net::HTTP.new('rest.akismet.com', 80, @proxyHost, @proxyPort) path = '/1.1/verify-key' data="key=#{@apiKey}&blog=#{@blog}" resp, data = http.post(path, data, STANDARD_HEADERS) @verifiedKey = (data == "valid") end |