Metadata-Version: 2.1
Name: sxlog-student
Version: 1.0.2
Summary: 超星 AI 交互过程记录助手 · 学生端一键安装器（自动识别默认浏览器、安装浏览器插件、弹窗填写学号姓名）
License: Proprietary
Author: SXLOG
Requires-Python: >=3.8
Project-URL: Homepage, https://pypi.org/project/sxlog-student/
Description-Content-Type: text/markdown

# sxlog-student · 超星 AI 交互记录助手（学生端）

一条命令装好浏览器插件，并弹窗让你填写学号、姓名 —— 之后你在超星平台上与 AI 的交互过程
（你输入的提问、AI 的回复、粘贴/复制行为与输入节奏）会被完整记录，
导出为一份带哈希链与签名的 `.sxlog` 文件，随作业一起提交。

> 本工具是《电子系统项目开发与实践》等课程的过程性评价配套工具。
> **所有记录只保存在你自己电脑的浏览器里，不会上传到任何服务器。**

## ⚠️ 装完在 Chrome 里看不到插件？（先读这一节）

`pip install` 只装了 Python 工具包，**它不会、也无法把插件自动塞进新版 Chrome**。

原因（这是 Chrome 的官方政策，不是本工具的缺陷）：Chrome 从 **137 版**起删除了 `--load-extension`
命令行参数 —— 该参数长期被恶意软件用于静默安装扩展；曾用于绕过它的
`--disable-features=DisableLoadExtensionCommandLineSwitch` 也在 Chrome 142 之后失效。
官方给出的替代自动化通道（`--remote-debugging-pipe` + CDP `Extensions.loadUnpacked`）
经实测在 Chrome 152 上同样不通。**Edge / Chromium / Chrome for Testing 尚未继承该限制。**

→ 结论：在 Chrome 上**必须手动加载一次**（只需一次，之后永久可用），这是浏览器层面的安全设计，第三方工具绕不过去。

**先跑这条命令看状态和下一步：**

```bash
sxlog-student status
```

它会报出：浏览器版本、自动加载是否可用、插件文件在哪、是否已经加载过，并打印下一步。

### 三条路，按省事程度排序

| 方案 | 需要学生做什么 | 是否永久 | 说明 |
|---|---|---|---|
| **A. 应用商店安装**（最推荐，需先上架） | 点一个链接 →「添加」 | ✅ 永久，**自动更新** | 唯一同时满足"零操作 + 永久 + 可热修复"的方案。Edge Add-ons 免费上架，Chrome Web Store 一次性 $5 |
| **B. Edge 零点击通道** | 运行一次 `sxlog-student --browser edge` | ⚠️ **会话级**（已实测） | Edge 仍支持命令行加载；浏览器完全退出后插件不再加载，下次使用前再跑一次命令即可（不用找目录、不用点击） |
| **C. Chrome 手动加载一次** | 点 4 下（步骤如下） | ✅ 永久 | 一次投入换永久，推荐给愿意花 20 秒的学生 |

**方案 C 的 4 步**（安装器已把插件目录复制到剪贴板，并会**在桌面留一份可见副本**）：

1. 打开 `chrome://extensions`
2. 打开右上角「**开发者模式**」
3. 点「**加载已解压的扩展程序**」
4. 选桌面上的文件夹 **`超星AI记录插件（装插件时选这个文件夹）`**
   —— 不用去记 `%LOCALAPPDATA%` 这种隐藏目录，桌面上直接就能看到它
   （也可以在选择框的文件名栏里 `Ctrl+V` 粘贴路径）

> **为什么不直接把目录路径告诉学生就完了？** 因为 `%LOCALAPPDATA%\SXLOG` 在资源管理器里默认是隐藏的，
> 学生在"选择文件夹"对话框里基本找不到。所以安装器做了三件事：把路径放进剪贴板、自动打开扩展管理页、
> 并在**桌面留一份名字自带说明的副本**。

## 安装

```bash
pip install sxlog-student
```

然后运行（首次会弹出填写学号/姓名的窗口）：

```bash
sxlog-student
```

## 它做了什么

```
sxlog-student
   ├─ 自动探测系统默认浏览器（注册表 UserChoice，支持 Chrome / Edge）
   ├─ 把插件复制到  %LOCALAPPDATA%\SXLOG\extension
   ├─ 弹窗采集学号 / 姓名 / 课程，并写入插件默认配置（含知情同意）
   ├─ 带 --load-extension 启动浏览器，打开超星 AI 页面
   └─ 生成《使用说明.txt》并给出"永久安装"的三步指引
```

## 常用命令

| 命令 | 说明 |
|---|---|
| `sxlog-student` | 安装并启动（默认行为） |
| `sxlog-student status` | **查看状态**：浏览器版本、自动加载是否可用、插件是否已加载、下一步该做什么 |
| `sxlog-student start` | 已经装过，只启动浏览器 |
| `sxlog-student where` | 显示插件与配置目录位置 |
| `sxlog-student doctor` | 环境自检（浏览器探测、版本、自动加载判定、tkinter 可用性等） |
| `sxlog-student guide` | 打开插件目录（里面有使用说明与手动加载步骤） |
| `sxlog-student uninstall` | 删除插件文件与配置目录 |
| `sxlog-student --browser edge` | 强制用 Edge（Chrome 版本过高时想走自动加载通道） |
| `sxlog-student --sid 2024030118 --name 张三 --yes` | 非交互安装（供批量部署脚本调用） |

## 必须在浏览器里做一次的永久安装

现代 Chrome / Edge **不允许**未经应用商店或企业策略的插件被静默永久安装（这是浏览器的安全设计，不是本工具的缺陷）。
所以本工具会把插件和配置都准备好，并自动带插件启动浏览器，本次会话即可使用；
想让它**永久可用**，只需在浏览器里做三步（只需一次）：

1. 地址栏打开 `chrome://extensions`（Edge 为 `edge://extensions`）
2. 打开右上角「开发者模式」
3. 点「加载已解压的扩展程序」，选择目录：`%LOCALAPPDATA%\SXLOG\extension`

> **Chrome 用户请注意**：Chrome 137 起 `--load-extension` 已被删除，因此"自动带插件启动"在
> Chrome 上不会生效（工具会明确告知，不会再让你以为装好了）。手动加载那一步在 Chrome 上是必须的。
> Edge 仍支持自动加载，可用 `sxlog-student --browser edge`。

> 浏览器已经在运行时，参数 `--load-extension` 会被忽略。此时本工具会自动改用**独立配置目录**
> 启动（插件可用，但那个窗口需要登录一次超星）。想用你平时那个浏览器（已有登录状态），
> 请先完全退出浏览器再运行一次 `sxlog-student`。

## 日常使用

1. 打开超星 AI 页面，右下角出现浮标
2. 点浮标 →「开始记录」（**默认不记录，必须主动点一次**）
3. 正常提问、追问；如果需要，也可以点「暂停记录」
4. 作业完成后点「导出 .sxlog」，把文件上传到课程作业提交链接

导出文件名形如 `2024030118_超星AI对话_20260914.sxlog`（学号_AI工具名_日期）。

## 记录范围（知情同意内容）

- 你在超星平台内提交的提问文本、AI 的回复文本
- 粘贴与复制行为、击键节奏与中文输入法组合次数（用于区分"自己打字"与"外部 AI 生成后粘贴"）
- 页面进入/切换等会话上下文
- 一份用于区分本机的浏览器信息：时区、屏幕分辨率、色彩深度、CPU 逻辑核数、内存档位、
  界面语言、平台类型，以及一个随机生成、仅存于本机的安装标识；附在记录文件末尾供老师核对提交人

**不采集**：账号密码、超星以外的任何网站、屏幕截图、显卡型号、字体列表、Canvas 指纹等高侵入性特征。

## 数据与隐私

- 记录写入浏览器本地存储（`chrome.storage.local`），不出本机
- 只有你主动导出时才生成文件，交不交给老师由你决定
- 随时可在设置页「数据管理」一键清空本机记录

## 常见问题

**Q：导出时报"没有任何交互记录"？**
先点浮标 →「开始记录」，再去提问。默认是暂停状态。

**Q：换电脑 / 重装浏览器后记录还在吗？**
不在。记录存于浏览器本地，换设备就要尽早导出提交。

**Q：能在 Firefox 上用吗？**
不能。插件基于 Chromium 的 Manifest V3，仅支持 Chrome / Edge 等 Chromium 系浏览器。

**Q：为什么不直接装成普通插件？**
见上文"永久安装"一节 —— 这是浏览器的安全限制，任何工具都绕不过去，除非上架应用商店或使用企业策略。
