diff --git a/functions.php b/functions.php index 505e5f2..cb71e3e 100644 --- a/functions.php +++ b/functions.php @@ -8219,26 +8219,38 @@ function argon_auto_detect_spam_on_comment($comment_id, $comment_approved) { $should_check = false; $check_reason = ''; - // 优先级1:检查是否触发关键字(最高优先级) + // 检查是否触发关键字 $keyword_check = argon_check_spam_keywords($comment); - if ($keyword_check && $keyword_check['triggered']) { - $should_check = true; - $check_reason = 'keyword'; - // 保存触发的关键字信息 - update_comment_meta($comment_id, '_argon_spam_triggered_keywords', $keyword_check['keywords']); - } - // 优先级2:全量检测模式 - elseif ($mode === 'all') { - $should_check = true; - $check_reason = 'all'; - } - // 优先级3:抽查模式 - elseif ($mode === 'sample') { - // 根据用户历史通过率动态调整概率 - $check_probability = argon_get_user_spam_check_probability($comment); - if (rand(1, 100) <= $check_probability) { + $keyword_triggered = $keyword_check && $keyword_check['triggered']; + + // 根据检测模式决定是否检测 + if ($mode === 'keyword') { + // 关键字必查模式:只检测触发关键字的评论 + if ($keyword_triggered) { $should_check = true; - $check_reason = 'sample'; + $check_reason = 'keyword'; + update_comment_meta($comment_id, '_argon_spam_triggered_keywords', $keyword_check['keywords']); + } + } elseif ($mode === 'all') { + // 全量检测模式:检测所有评论 + $should_check = true; + $check_reason = $keyword_triggered ? 'keyword' : 'all'; + if ($keyword_triggered) { + update_comment_meta($comment_id, '_argon_spam_triggered_keywords', $keyword_check['keywords']); + } + } elseif ($mode === 'sample') { + // 智能抽查模式:关键字触发或随机抽查 + if ($keyword_triggered) { + $should_check = true; + $check_reason = 'keyword'; + update_comment_meta($comment_id, '_argon_spam_triggered_keywords', $keyword_check['keywords']); + } else { + // 根据用户历史通过率动态调整概率 + $check_probability = argon_get_user_spam_check_probability($comment); + if (rand(1, 100) <= $check_probability) { + $should_check = true; + $check_reason = 'sample'; + } } } diff --git a/settings.php b/settings.php index b27b706..ecc29cd 100644 --- a/settings.php +++ b/settings.php @@ -3887,17 +3887,100 @@ window.pjaxLoaded = function(){


+

+ + + +
+ + +

+
+
+
+ 70% 且出现 >= 3 次的关键词自动加入下方列表', 'argon');?> +

+
+ + +

+
+
+
+
+ 加微信, 联系QQ, 点击链接, 免费领取, 刷单, 兼职 +

+ + '; + echo '

' . __('AI 学习到的关键字', 'argon') . '

'; + echo '
'; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + + // 按置信度排序 + uasort($learned_keywords, function($a, $b) { + return $b['confidence'] <=> $a['confidence']; + }); + + $current_keywords_array = array_filter(array_map('trim', explode("\n", get_option('argon_comment_spam_detection_keywords', '')))); + + foreach ($learned_keywords as $keyword => $stats) { + $confidence = round($stats['confidence'] * 100); + $color = $confidence >= 70 ? '#48bb78' : ($confidence >= 50 ? '#ed8936' : '#a0aec0'); + $is_added = in_array($keyword, $current_keywords_array); + + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + } + echo '
' . __('关键字', 'argon') . '' . __('垃圾', 'argon') . '' . __('正常', 'argon') . '' . __('置信度', 'argon') . '' . __('状态', 'argon') . '
' . esc_html($keyword) . '' . $stats['spam_count'] . '' . $stats['normal_count'] . '' . $confidence . '%'; + if ($is_added) { + echo '✓ ' . __('已添加', 'argon') . ''; + } elseif ($confidence >= 70 && $stats['spam_count'] >= 3) { + echo '⚠ ' . __('待添加', 'argon') . ''; + } else { + echo '○ ' . __('观察中', 'argon') . ''; + } + echo '
'; + echo '

'; + echo __('• 绿色:置信度 ≥ 70%,已自动添加到关键字列表', 'argon') . '
'; + echo __('• 橙色:置信度 50-70%,观察中', 'argon') . '
'; + echo __('• 灰色:置信度 < 50%,数据不足', 'argon'); + echo '

'; + echo ''; + } + ?> + + + @@ -3905,7 +3988,8 @@ window.pjaxLoaded = function(){



- +
+

@@ -4020,78 +4104,6 @@ window.pjaxLoaded = function(){ - - - - -

-
-
-
- 加微信, 联系QQ, 点击链接, 免费领取, 刷单, 兼职 -

- - - - - - - - -

-
-
-
- 70% 且出现 >= 3 次的关键词自动加入关键字列表', 'argon');?>
- -

- - - - - - - '; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - - // 按置信度排序 - uasort($learned_keywords, function($a, $b) { - return $b['confidence'] <=> $a['confidence']; - }); - - foreach ($learned_keywords as $keyword => $stats) { - $confidence = round($stats['confidence'] * 100); - $color = $confidence >= 70 ? '#48bb78' : ($confidence >= 50 ? '#ed8936' : '#cbd5e0'); - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - } - echo '
' . __('关键字', 'argon') . '' . __('垃圾', 'argon') . '' . __('正常', 'argon') . '' . __('置信度', 'argon') . '
' . esc_html($keyword) . '' . $stats['spam_count'] . '' . $stats['normal_count'] . '' . $confidence . '%
'; - echo '

'; - echo __('绿色表示已自动加入关键字列表(置信度 ≥ 70%),橙色表示观察中(50-70%),灰色表示置信度较低。', 'argon'); - echo '

'; - } else { - echo '

' . __('暂无学习到的关键字。启用 AI 主动学习后,系统会自动分析并记录。', 'argon') . '

'; - } - ?> - - -