1 | <?php |
---|
2 | function akismet_user_comment_check($action, $comment) |
---|
3 | { |
---|
4 | global $conf; |
---|
5 | if ('reject'==$action or $conf['akismet_spam_action']==$action) |
---|
6 | return $action; // already rejecting |
---|
7 | if ( empty($conf['akismet_api_key']) ) |
---|
8 | return $action; // need to config it |
---|
9 | /*if ( !is_a_guest() ) |
---|
10 | return $action;*/ |
---|
11 | |
---|
12 | include_once( dirname(__FILE__).'/akismet.class.php' ); |
---|
13 | |
---|
14 | set_make_full_url(); |
---|
15 | $url = duplicate_picture_url( array('image_id'=>$comment['image_id']) ); |
---|
16 | unset_make_full_url(); |
---|
17 | $aki_comm = array( |
---|
18 | 'author' => $comment['author'], |
---|
19 | 'body' => $comment['content'], |
---|
20 | 'permalink' => $url, |
---|
21 | 'referrer' => isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '', |
---|
22 | ); |
---|
23 | if (isset($_POST['url']) && strlen($_POST['url'])) |
---|
24 | $aki_comm['comment_author_url'] = $_POST['url']; |
---|
25 | |
---|
26 | $akismet = new Akismet(get_absolute_root_url(), $conf['akismet_api_key'], $aki_comm); |
---|
27 | |
---|
28 | if( !$akismet->errorsExist() ) |
---|
29 | { |
---|
30 | $counters = explode('/', $conf['akismet_counters']); |
---|
31 | if ( $akismet->isSpam() ) |
---|
32 | { |
---|
33 | $action = $conf['akismet_spam_action']; |
---|
34 | if ('reject'==$action && !is_a_guest() && isset($_SESSION['csi'])) |
---|
35 | $action='moderate'; |
---|
36 | if ('reject'!=$action) set_status_header(403); |
---|
37 | $counters[0]++; |
---|
38 | $_POST['cr'][] = 'aki'; |
---|
39 | } |
---|
40 | else |
---|
41 | { |
---|
42 | $_POST['cr'][] = 'aki-ok'; |
---|
43 | if (!isset($_SESSION['csi']) && isset($_POST['url']) && strlen($_POST['url']) ) |
---|
44 | { |
---|
45 | $action = 'reject'; |
---|
46 | $_POST['cr'][] = 'csi url'; |
---|
47 | } |
---|
48 | } |
---|
49 | $counters[1]++; |
---|
50 | $conf['akismet_counters'] = implode('/', $counters); |
---|
51 | $query = 'UPDATE '.CONFIG_TABLE.' SET value="'.$conf['akismet_counters'].'" WHERE param="akismet_counters" LIMIT 1'; |
---|
52 | pwg_query($query); |
---|
53 | } |
---|
54 | else { |
---|
55 | $_POST['cr'][] = 'aki-FAIL'; |
---|
56 | if (is_admin()) |
---|
57 | var_export( $akismet->getErrors() ); |
---|
58 | } |
---|
59 | |
---|
60 | return $action; |
---|
61 | } |
---|
62 | |
---|
63 | ?> |
---|