?️ SmartSpam

951.png

? 插件介绍

SmartSpam 是一款功能强大的 Typecho 评论过滤插件,能有效拦截垃圾评论和机器人评论,保持您网站评论区的整洁与安全。本插件由乐乐主题创作室开发,为博客站长提供了多维度的评论过滤机制,让您可以根据自身需求灵活配置过滤规则。

? 核心理念:让机器人彻底远离您的博客,为读者提供一个纯净的交流空间!

?️ 设计架构

SmartSpam 插件采用模块化设计,主要由以下几个部分组成:

  1. 钩子注册模块:通过 Typecho 插件钩子机制,拦截评论提交的各个环节

    • 常规评论提交过滤 (Widget_Feedback->comment)
    • XML-RPC 评论过滤 (Widget_XmlRpc->comment)
    • 评论预览过滤 (Widget_Feedback->filterComment)
  2. 配置面板模块:提供丰富的过滤选项和参数设置界面
  3. 过滤逻辑模块:实现多维度评论过滤逻辑,包含:

    • 用户身份检查
    • 内容特征分析
    • 词汇匹配过滤
    • IP、邮箱、网址验证
  4. 工具函数模块:提供字符串处理、IP匹配等辅助功能

插件工作流程图

wenxiaobai_mermaid_1751470836933.png

处理流程示例

wenxiaobai_mermaid_1751471394704.png

? 功能亮点

全方位评论过滤

  • 游客评论控制:可设置是否允许未登录用户评论
  • IP 过滤:支持精确 IP 和 IP 段(通配符)过滤
  • 邮箱过滤:阻止特定邮箱或邮箱域名
  • 网址过滤:阻止包含特定网址关键词的评论
  • 昵称过滤

    • 关键词过滤
    • 长度限制(最短/最长)
    • 防止使用日文昵称
    • 防止使用网址作为昵称

智能内容分析

  • 文章标题检测:阻止评论内容包含文章标题(防复制粘贴)
  • 语言检测

    • 日文内容过滤
    • 非中文内容过滤(要求至少包含一个中文字符)
  • 长度控制:评论内容长度限制(最短/最长字符数)
  • 词汇过滤

    • 禁止词汇过滤(彻底禁止)
    • 敏感词汇检测(可设置不同处理方式)

灵活处理机制

  • 多种处理方式

    • 无动作:通过检测
    • 标记为待审核:需要管理员审核
    • 标记为垃圾:自动归入垃圾评论
    • 评论失败:直接拒绝提交,并显示错误信息

? 插件优势

  • ? 轻量级:代码精简,不影响网站性能
  • ? 高度可配置:每种过滤规则均可单独配置处理方式
  • ? 智能识别:多维度特征分析,准确识别垃圾评论
  • ?️ 易于扩展:模块化设计,便于后续功能扩展
  • ? 兼容性好:支持 Typecho 1.2+ 版本

? 使用教程

安装步骤

  1. 下载 SmartSpam 插件压缩包
  2. 解压后将文件夹重命名为 SmartSpam(区分大小写)
  3. 上传至网站的 /usr/plugins/ 目录
  4. 登录管理后台,进入"控制台 > 插件"
  5. 找到 SmartSpam 插件,点击"启用"

配置选项概览

wenxiaobai_mermaid_1751471217799.png

配置说明

启用插件后,点击"设置"进入插件配置页面,可以根据需要配置以下选项:

? 用户身份控制

  • 游客评论:设置未登录用户评论的处理方式

? IP 控制

  • 屏蔽IP操作:设置命中 IP 黑名单的处理方式
  • 屏蔽IP:填写需要屏蔽的 IP,每行一个,支持通配符(如 192.168.*.*

✉️ 邮箱控制

  • 屏蔽邮箱操作:设置命中邮箱黑名单的处理方式
  • 邮箱关键词:填写需要屏蔽的邮箱关键词,每行一个

? 网址控制

  • 屏蔽网址操作:设置命中网址黑名单的处理方式
  • 网址关键词:填写需要屏蔽的网址关键词,每行一个

? 昵称控制

  • 屏蔽昵称关键词操作:设置命中昵称黑名单的处理方式
  • 屏蔽昵称关键词:填写需要屏蔽的昵称关键词,每行一个
  • 昵称长度限制:设置允许的昵称最短和最长字符数
  • 昵称日文操作:设置对包含日文的昵称的处理方式
  • 昵称网址操作:设置对使用网址作为昵称的处理方式

? 内容控制

  • 内容含有文章标题:设置对包含文章标题的评论的处理方式
  • 日文评论操作:设置对包含日文的评论的处理方式
  • 非中文评论操作:设置对不包含中文的评论的处理方式
  • 评论字符长度操作:设置评论长度限制及不符合要求的处理方式
  • 评论最短/最长字符数:设置允许的评论最短和最长字符数

? 词汇过滤

  • 禁止词汇操作:设置对包含禁止词汇的评论的处理方式
  • 禁止词汇:填写禁止词汇,每行一个
  • 敏感词汇操作:设置对包含敏感词汇的评论的处理方式
  • 敏感词汇:填写敏感词汇,每行一个

评论处理流程

以下是一个评论从提交到处理的完整流程图:

sequenceDiagram
    participant 访客
    participant SmartSpam
    participant Typecho
    
    访客->>Typecho: 提交评论
    Typecho->>SmartSpam: 评论过滤钩子
    
    SmartSpam->>SmartSpam: 检查用户身份
    SmartSpam->>SmartSpam: 检查IP黑名单
    SmartSpam->>SmartSpam: 检查邮箱黑名单
    SmartSpam->>SmartSpam: 检查网址黑名单
    SmartSpam->>SmartSpam: 检查昵称规则
    SmartSpam->>SmartSpam: 检查内容规则
    SmartSpam->>SmartSpam: 检查词汇规则
    
    alt 评论通过
        SmartSpam->>Typecho: 允许发布
        Typecho->>访客: 评论成功
    else 标记待审核
        SmartSpam->>Typecho: 标记为待审核
        Typecho->>访客: 评论需审核
    else 标记垃圾
        SmartSpam->>Typecho: 标记为垃圾
        Typecho->>访客: 评论成功(实际被标记为垃圾)
    else 评论失败
        SmartSpam->>Typecho: 抛出异常
        Typecho->>访客: 显示错误信息
    end

? 使用建议

  1. 循序渐进配置:建议初次使用时先启用基本功能,观察效果后再逐步开启其他过滤规则
  2. 定期更新黑名单:根据垃圾评论的新特征,定期更新关键词列表
  3. 合理设置处理方式

    • 对于明显的垃圾评论(如含有禁止词汇),可设置"评论失败"
    • 对于疑似垃圾评论(如含有敏感词汇),可设置"标记为待审核"
  4. 保留日志记录:建议配合其他日志插件,记录被过滤的评论,以便分析调整过滤策略

? 注意事项

  • 过滤规则设置过严可能会误伤正常评论
  • 多个过滤规则之间是"或"的关系,命中任一规则将执行相应操作
  • 过滤规则按代码中的顺序依次检查,一旦命中某规则将不再检查后续规则
  • 若修改配置后过滤效果不符合预期,请尝试清除浏览器缓存

? 版本信息

当前版本:2.8.0

?‍? 关于作者

本插件由乐乐主题创作室开发,专注于Typecho主题定制、插件开发、网站优化与SEO服务。

下载源码

此内容需要评论后才能查看哦 (^▽^)
https://blog.csdn.net/haokeji...