654 字
3 分钟
我要重构小绿伞啦

2006年,我开发了一个未成年人健康上网的软件。

那时,360还叫奇虎安全卫士…

可那时,我才13岁…

psc (3)

🎉 已完成功能#

一、核心模块#

1. 过滤数据管理器 (filterDataManager.js)#

  • ✅ 关键词黑名单管理
  • ✅ 域名黑名单管理
  • ✅ 域名白名单管理
  • ✅ 拦截日志记录
  • ✅ 数据持久化存储
  • ✅ 统计信息
  • ✅ 数据导入导出

2. 浏览器标题监控 (browserTitleMonitor.js)#

  • ✅ 定期检查浏览器窗口标题(Chrome/Edge)
  • ✅ 关键词匹配检测
  • ✅ 自动关闭违规进程
  • ✅ 可配置检查间隔(默认3秒)
  • ✅ 拦截日志记录

3. 拦截器管理器 (interceptorManager.js)#

  • ✅ 两种拦截模式管理
  • ✅ 模式切换功能
  • ✅ 启动/停止控制
  • ✅ 配置持久化
  • ✅ 首次设置向导

4. 浏览器扩展 (src/extension/)#

  • ✅ Chrome/Edge 扩展支持
  • ✅ URL拦截(域名黑名单 + 关键词)
  • ✅ 标题检测
  • ✅ 内容检测(可选)
  • ✅ 拦截页面UI
  • ✅ 扩展弹出窗口
  • ✅ 本地规则存储

二、拦截模式#

模式1:浏览器标题监控 ⭐#

优点:

  • 不需要安装扩展
  • 自动工作
  • 实现简单

缺点:

  • 有延迟(3秒检查间隔)
  • 只能关闭进程,无法显示拦截页面
  • 用户可能短暂看到内容

适用场景:

  • 不想安装扩展的用户
  • 对拦截延迟要求不高的场景

模式2:浏览器扩展 ⭐⭐⭐(推荐)#

优点:

  • 实时拦截,无延迟
  • 可以显示拦截页面
  • 可以检查URL、标题、内容
  • 白名单功能

缺点:

  • 需要手动安装扩展
  • 用户可能禁用扩展

适用场景:

  • 需要精确拦截的用户
  • 愿意安装扩展的用户

三、IPC通信接口#

已在 src/main/index.jssrc/main/preload.js 中实现完整的API:

拦截器管理API#

window.electronAPI.interceptor.getStatus()
window.electronAPI.interceptor.setMode(mode)
window.electronAPI.interceptor.start()
window.electronAPI.interceptor.stop()
window.electronAPI.interceptor.getRunningBrowsers()
// ... 等

过滤数据管理API#

window.electronAPI.filter.addKeyword(keyword)
window.electronAPI.filter.removeKeyword(keyword)
window.electronAPI.filter.addBlockedDomain(domain)
window.electronAPI.filter.getBlockLog()
window.electronAPI.filter.getStats()
// ... 等

📋 待完成功能(前端UI)#

虽然后端功能已完成,但前端页面还需要集成:

1. 首次设置向导#

  • 创建欢迎页面
  • 选择拦截模式界面
  • 扩展安装引导

2. 控制面板集成#

  • 显示拦截状态
  • 显示今日拦截次数
  • 快速启动/停止按钮

3. 内容过滤页面增强#

  • 关键词管理UI
  • 域名黑名单UI
  • 域名白名单UI
  • 批量导入功能

4. 设置页面#

  • 拦截模式选择
  • 标题监控配置(检查间隔)
  • 扩展状态显示

5. 使用报告页面#

  • 拦截日志列表
  • 按时间/原因筛选
  • 导出日志功能
我要重构小绿伞啦
https://www.yn65.com/posts/a10/
作者
晨平安
发布于
2025-10-05
许可协议
CC BY-NC-SA 4.0
封面
示例歌曲
示例艺术家
封面
示例歌曲
示例艺术家
0:00 / 0:00