轻量、高效、一键运行的 Linux.do 论坛阅读辅助工具
流读(LiuDu)是一款基于 Rust + Tauri 构建的桌面应用,帮助 Linux.do 用户高效完成日常阅读任务。无需安装 Python 环境,无需命令行操作,双击即用。
- 自动浏览论坛未读话题,增加主题阅读数
- 模拟真人行为:渐进式滚动、随机停顿、偶尔回滚,触发 Discourse 的
timings上报机制 - 支持多入口 URL(latest / 各分区),连续 3 轮无新内容自动切换下一入口
- 可配置目标阅读数量
- 从入口页收集未读话题,逐一进入快速浏览帖子
- 快速阅读模式:不模拟人类复杂行为,通过快速滚动+可配延时高效完成
- 智能等待 Discourse 瀑布流加载,确保每个话题的帖子被完整读取
- 自动点赞(可选):
- 中文字数 ≥ 阈值时才点赞
- 70% 概率随机点赞,避免机械化
- 可配置点赞上限
- 支持跳过前 N 个热门话题
- 所有参数均通过界面配置,无需编辑文件
- Chrome 路径、调试端口、用户数据目录可自定义
- 入口 URL 列表可视化管理(支持增删)
- 配置自动持久化,下次启动自动加载
- 关闭窗口自动最小化到系统托盘,后台继续运行
- 托盘菜单:显示窗口 / 退出
- 单击托盘图标快速还原窗口
- 双击启动流读应用
- 点击 「启动 Chrome」,自动打开带调试端口的 Chrome 浏览器
- 在 Chrome 中 登录 Linux.do
- 回到流读,点击 「连接」,状态变为 ✅ 已连接
- 配置任务参数,点击 ▶ 开始
- 实时查看运行日志和进度条
- 随时可点击 ⏹ 停止 安全中断任务
- Windows 10 (1803+) / Windows 11(已内置 WebView2)
- macOS 11+ / Linux(需 WebKitGTK)
- 已安装 Google Chrome 浏览器
| 层 | 技术 | 说明 |
|---|---|---|
| 框架 | Tauri v2 | 原生 WebView 渲染,极小体积 |
| 后端 | Rust | 系统级性能,内存安全,异步运行时 tokio |
| 前端 | Vanilla HTML/CSS/JS | 零框架依赖,前端资源 < 50KB |
| 浏览器通信 | CDP(Chrome DevTools Protocol) | 基于 WebSocket 直连 Chrome |
| 配置存储 | JSON | 存储于系统 AppData 目录 |
| 指标 | 数值 |
|---|---|
| 安装包体积 | ~1.8 MB (NSIS) |
| 可执行文件 | ~5 MB |
| 启动时间 | < 1 秒 |
| 内存占用 | ~15 MB |
| 前端框架依赖 | 0 |
没有使用 chromiumoxide 等重量级 crate(含 ~60K 行 CDP 类型定义),而是基于 tokio-tungstenite 实现了极简 CDP 客户端,仅覆盖 3 个实际需要的 CDP 命令:
Runtime.evaluate → 所有 DOM 操作的基础(查找元素、点赞、计数等)
Page.navigate → 页面导航
GET /json/list → 发现 Chrome 标签页
dolinux/
├── package.json # npm 配置(仅 Tauri CLI)
├── src/ # 前端
│ ├── index.html # 主页面(单页应用)
│ ├── css/styles.css # 浅色简洁主题
│ └── js/
│ ├── api.js # Tauri invoke/listen 封装
│ ├── logger.js # 日志面板组件
│ └── app.js # 主逻辑与状态管理
└── src-tauri/ # Rust 后端
├── Cargo.toml # 依赖 + 体积优化配置
├── tauri.conf.json # 窗口 / 安全 / 打包配置
└── src/
├── main.rs # 入口
├── lib.rs # Tauri Commands + 托盘 + 事件
├── config.rs # 配置管理(JSON 持久化)
├── state.rs # 全局状态(线程安全)
├── chrome.rs # Chrome 启动 / 检测
├── cdp/
│ ├── client.rs # WebSocket CDP 客户端
│ └── protocol.rs # CDP 消息类型定义
└── tasks/
├── common.rs # JS 脚本注入 + 滚动行为
├── topic_reader.rs # 刷主题阅读
└── post_reader.rs # 刷帖子 + 点赞
环境准备:
开发与构建:
# 安装依赖
npm install
# 开发模式(热重载前端)
npx tauri dev
# 构建 Release
npx tauri build
# 仅编译(不打包安装程序)
cd src-tauri && cargo build --release构建产物位于 src-tauri/target/release/。
- 本工具通过 Chrome 远程调试协议(CDP)与浏览器交互,需要先在 Chrome 中登录 Linux.do
- 刷主题阅读采用模拟真人滚动方式,确保 Discourse 的阅读追踪机制正常记录
- 刷帖子延时建议 ≥ 100ms,过低可能导致 Discourse 不记录阅读数
- 关闭应用窗口会最小化到系统托盘,需通过托盘菜单「退出」才会真正退出
| 作者 | 凌封 |
| 开源框架 | auto-chrome — 基于 Playwright 的浏览器自动化框架 |
| 技术圈 | aibook.ren(AI全书) |
流读是 auto-chrome 框架在 Linux.do 场景下的轻量独立实现,使用 Rust + Tauri 重写以获得极致的体积和性能。
MIT