Linux.do AI对话导出工具
这是一个油猴脚本,用于在 Linux.do AI 对话列表页面添加一键下载功能,可以导出历史对话的标题和完整内容。
功能特点
✅ 一键导出所有历史对话
✅ 支持导出为 JSON 和 Markdown 两种格式
✅ 显示实时进度,体验友好
✅ 自动获取对话标题、用户名、时间戳和完整内容
✅ 智能延迟请求,避免服务器压力
安装步骤
1. 安装油猴扩展
首先需要在浏览器中安装油猴(Tampermonkey)扩展:
2. 安装脚本
- 点击油猴图标,选择"管理面板"
- 点击左侧的"+"号创建新脚本
- 将
linux-do-ai-conversations-exporter.user.js
文件的内容复制粘贴进去
- 按
Ctrl+S
(Mac: Cmd+S
) 保存
或者直接打开 .user.js
文件,油猴会自动识别并提示安装。
使用方法
- 访问 https://linux.do/discourse-ai/ai-bot/conversations
- 等待页面加载完成,会在右上角看到一个 "📥 导出所有对话" 按钮
- 点击按钮开始导出
- 会显示进度窗口,实时显示导出进度
- 导出完成后会自动下载两个文件:
linux-do-conversations-xxxxx.json
- JSON格式数据
linux-do-conversations-xxxxx.md
- Markdown格式文档
导出数据格式
JSON 格式
{
"exportTime": "2025-10-10T12:00:00.000Z",
"totalConversations": 30,
"conversations": [
{
"title": "对话标题",
"url": "https://linux.do/t/topic/xxxxx",
"posts": [
{
"username": "用户名",
"time": "2025-10-10T12:00:00.000Z",
"content": "对话内容..."
}
],
"timestamp": "2025-10-10T12:00:00.000Z"
}
]
}
Markdown 格式
导出的 Markdown 文件结构清晰,包含:
- 导出时间和对话总数
- 每个对话的标题、链接
- 每条消息的用户名、时间和内容
- 清晰的分隔线和层级结构
技术实现
脚本使用了 Playwright 辅助分析页面结构,主要实现:
- DOM 解析: 通过选择器提取对话列表和内容
- 异步请求: 使用
fetch
API 获取每个对话的详细内容
- 进度显示: 实时更新导出进度
- 数据处理: 生成 JSON 和 Markdown 两种格式
- 文件下载: 使用 Blob 和 URL.createObjectURL 实现客户端下载
注意事项
⚠️ 请求频率: 脚本会在每个请求之间自动延迟 500ms,避免对服务器造成压力
⚠️ 网络环境: 导出时间取决于对话数量和网络速度
⚠️ 浏览器兼容: 建议使用最新版本的 Chrome、Edge 或 Firefox
故障排除
按钮没有出现
导出失败
- 检查网络连接
- 查看浏览器控制台是否有错误信息(F12)
- 尝试减少并发请求数量
导出的对话不完整
- 某些对话可能由于网络问题获取失败
- 可以查看浏览器控制台的日志
- 重新尝试导出
版本历史
- v1.0.0 (2025-10-10)
- 首次发布
- 支持导出 JSON 和 Markdown 格式
- 添加进度显示功能
许可证
MIT License
贡献
欢迎提交 Issue 和 Pull Request!