| // +---------------------------------------------------------------------------+ require_once 'HTTP/Request.php'; class Akismet { var $restUrl = 'rest.akismet.com'; var $akismetVersion = '1.1'; var $pluginName = 'Akismet'; var $pluginVersion = '0.1'; function reportHam($oComment, $key) { $request = & new HTTP_Request('http://' . $key . '.' . $this->restUrl . '/' . $this->akismetVersion . '/submit-ham'); $request->setHttpVer('1.0'); $request->setMethod(HTTP_REQUEST_METHOD_POST); $request->addHeader('user-agent', 'Seagull Framework/' . SGL_SEAGULL_VERSION . ' | ' . $this->pluginName . '/' . $this->pluginVersion); $request->addPostData('blog', SGL_BASE_URL); $request->addPostData('user_ip', $_SERVER['REMOTE_ADDR']); $request->addPostData('user_agent', $_SERVER['HTTP_USER_AGENT'], true); $request->addPostData('referrer', $_SERVER['HTTP_REFERER']); $request->addPostData('comment_author', $oComment->full_name); $request->addPostData('comment_author_email', $oComment->email); $request->addPostData('comment_author_url', $oComment->url); $request->addPostData('comment_content', $oComment->body); if (!PEAR::isError($request->sendRequest())) { $response = $request->getResponseBody(); } else { $response = ''; } return ($response == '1') ? true : false; } function reportSpam($oComment, $key) { $request = & new HTTP_Request('http://' . $key . '.' . $this->restUrl . '/' . $this->akismetVersion . '/submit-spam'); $request->setHttpVer('1.0'); $request->setMethod(HTTP_REQUEST_METHOD_POST); $request->addHeader('user-agent', 'Seagull Framework/' . SGL_SEAGULL_VERSION . ' | ' . $this->pluginName . '/' . $this->pluginVersion); $request->addPostData('blog', SGL_BASE_URL); $request->addPostData('user_ip', $_SERVER['REMOTE_ADDR']); $request->addPostData('user_agent', $_SERVER['HTTP_USER_AGENT'], true); $request->addPostData('referrer', $_SERVER['HTTP_REFERER']); $request->addPostData('comment_author', $oComment->full_name); $request->addPostData('comment_author_email', $oComment->email); $request->addPostData('comment_author_url', $oComment->url); $request->addPostData('comment_content', $oComment->body); if (!PEAR::isError($request->sendRequest())) { $response = $request->getResponseBody(); } else { $response = ''; } return ($response == '1') ? true : false; } function isSpam($oComment, $key) { $request = & new HTTP_Request('http://' . $key . '.' . $this->restUrl . '/' . $this->akismetVersion . '/comment-check'); $request->setHttpVer('1.0'); $request->setMethod(HTTP_REQUEST_METHOD_POST); $request->addHeader('user-agent', 'Seagull Framework/' . SGL_SEAGULL_VERSION . ' | ' . $this->pluginName . '/' . $this->pluginVersion); $request->addPostData('blog', SGL_BASE_URL); $request->addPostData('user_ip', $_SERVER['REMOTE_ADDR']); $request->addPostData('user_agent', $_SERVER['HTTP_USER_AGENT'], true); $request->addPostData('referrer', $_SERVER['HTTP_REFERER']); $request->addPostData('comment_author', $oComment->full_name); $request->addPostData('comment_author_email', $oComment->email); $request->addPostData('comment_author_url', $oComment->url); $request->addPostData('comment_content', $oComment->body); if (!PEAR::isError($request->sendRequest())) { $response = $request->getResponseBody(); } else { $response = ''; } return ($response == 'true') ? true : false; } function verifyKey($key = '') { $request = & new HTTP_Request('http://' . $this->restUrl . '/' . $this->akismetVersion . '/verify-key'); $request->setHttpVer('1.0'); $request->setMethod(HTTP_REQUEST_METHOD_POST); $request->addHeader('user-agent', 'Seagull Framework/' . SGL_SEAGULL_VERSION . ' | ' . $this->pluginName . '/' . $this->pluginVersion); $request->addPostData('key', $key); $request->addPostData('blog', SGL_BASE_URL); if (!PEAR::isError($request->sendRequest())) { $response = $request->getResponseBody(); } else { $response = ''; } return ($response == 'valid') ? true : false; } } ?>