feat: 知识管理平台精简版 - PyQt6桌面应用

主要功能:
- 账号管理:添加/编辑/删除账号,测试登录
- 浏览任务:批量浏览应读/选读内容并标记已读
- 截图管理:wkhtmltoimage截图,查看历史
- 金山文档:扫码登录/微信快捷登录,自动上传截图

技术栈:
- PyQt6 GUI框架
- Playwright 浏览器自动化
- SQLite 本地数据存储
- wkhtmltoimage 网页截图

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-18 22:16:36 +08:00
commit 83fef6dff2
24 changed files with 6133 additions and 0 deletions

123
README.md Normal file
View File

@@ -0,0 +1,123 @@
# 知识管理平台助手 - 精简版
一个基于 PyQt6 的本地桌面应用,用于自动化处理知识管理平台的浏览、截图和上传任务。
## 功能特性
-**账号管理**:添加/编辑/删除账号,支持密码加密存储
-**自动浏览**使用纯HTTP请求快速浏览内容并标记已读
-**网页截图**使用wkhtmltoimage截取浏览结果
-**金山文档**:自动上传截图到金山文档表格
-**现代UI**:支持深色/浅色主题切换
## 安装
### 1. 安装 Python 依赖
```bash
pip install -r requirements.txt
```
### 2. 安装 Playwright 浏览器
```bash
playwright install chromium
```
### 3. 安装 wkhtmltoimage
从 https://wkhtmltopdf.org/downloads.html 下载安装。
安装后确保 `wkhtmltoimage` 在系统 PATH 中,或在设置中手动指定路径。
## 使用方法
### 启动应用
```bash
python main.py
```
### 基本流程
1. **添加账号**:在"账号管理"页面添加知识管理平台账号
2. **开始浏览**:在"浏览任务"页面选择账号和浏览类型,点击开始
3. **查看截图**:浏览完成后自动截图,可在"截图管理"页面查看
4. **上传金山文档**(可选):
- 在"金山文档"页面配置表格链接和列设置
- 扫码登录金山文档
- 启用自动上传或手动上传
## 项目结构
```
zsglpt-lite/
├── main.py # 应用入口
├── requirements.txt # 依赖清单
├── config.py # 配置管理
├── core/ # 核心业务逻辑
│ ├── api_browser.py # API浏览器HTTP请求实现
│ ├── screenshot.py # wkhtmltoimage截图
│ └── kdocs_uploader.py # 金山文档上传
├── ui/ # PyQt界面
│ ├── main_window.py # 主窗口
│ ├── account_widget.py # 账号管理面板
│ ├── browse_widget.py # 浏览任务面板
│ ├── screenshot_widget.py # 截图管理面板
│ ├── kdocs_widget.py # 金山文档面板
│ ├── settings_widget.py # 设置面板
│ ├── log_widget.py # 日志显示面板
│ └── styles.py # QSS样式
├── utils/ # 工具类
│ ├── storage.py # JSON配置存储
│ ├── crypto.py # 密码加密
│ └── worker.py # 后台线程
└── data/ # 运行数据
├── config.json # 用户配置
├── cookies/ # Cookie缓存
└── screenshots/ # 截图保存
```
## 配置说明
配置文件位于 `data/config.json`,包含:
- `accounts`:账号列表(密码加密存储)
- `kdocs`:金山文档配置
- `screenshot`:截图参数配置
- `proxy`:代理设置
- `zsgl`知识管理平台URL配置
- `theme`:界面主题
## 注意事项
1. **首次使用**需要安装 wkhtmltoimage
2. **金山文档功能**需要安装 Playwright 和 Chromium
3. **密码**使用 Fernet 对称加密存储,密钥保存在 `data/encryption_key.bin`
4. **代理**支持 HTTP 代理,在设置中配置
## 依赖说明
| 依赖 | 版本 | 说明 |
|------|------|------|
| PyQt6 | >=6.5.0 | UI框架 |
| requests | >=2.31.0 | HTTP请求 |
| beautifulsoup4 | >=4.12.0 | HTML解析 |
| playwright | >=1.42.0 | 金山文档自动化 |
| cryptography | >=41.0.0 | 密码加密 |
| Pillow | >=10.0.0 | 图像处理 |
## 开发信息
- 从原项目 `zsglpt` 精简而来
- 移除了 Flask Web服务、SocketIO、邮件通知、定时任务等
- 代码量约 2000+ 行(原项目 8000+ 行)
- 精简比例约 70%
## License
MIT