# 2026-06-24 每日笔记

## 文件清理：源文件和 zip

### 已完成
- 删除 `/mnt/f/collections/pixiv小说自整理`（3634 txt）
- 删除 `/mnt/f/collections/Revvlee@H小说合集-210911`（33 txt）
- 删除 `/mnt/f/novel`（8262 文件）
- 保留 `/mnt/f/novel_clean`（6954 清理后 txt）

### 已决定暂不处理（仍在下载中）
- `小说数据5.5W`
- `小说`
- `7万篇小说-按拼音首字排序`
- `6699部成人小说、色情小说、黄色小说`（约 3875 zip + 2833 bc!，等下载完成后再处理）

### 技术坑记录
- **WSL drvfs NTFS 权限限制**：`sudo rm`、`find -delete`、`os.remove`、`cmd.exe /c del`、`win32 API 删除` 全部无法删除 NTFS 分区文件
- **metadata 选项坑**：加 `uid/gid,metadata` 重新挂载会导致目录 I/O 错误，需要 `sudo mount -t drvfs F: /mnt/f`（不带 options）才能恢复
- **长文件名问题**：`mv` 在部分超长文件名（~260+ 字符）上失败

## Calibre 操作

### 已删除
- **ID 9459**：**《北国的春天》** — TXT 源文件内容已损坏（非编码问题，字符本身乱码），已在 calibre-web 直接删除。
- **批量清理 3729 个编码损坏的 txt**：中文比例 < 10% 且含 `Ŀ¼Ĵ` 等乱码字符
  - 书库从 ~12000 本降至 **8285 本**

### 删除方式记录
- 手动 sqlite3 操作 metadata.db 完成删除（需先停止 calibre-server）
- 删除须清理：`books` 表中记录 + 文件系统中对应目录
- 重启 calibre-server 验证
# 2026-06-24 每日笔记

## 文件清理：源文件和 zip

### 已完成
- 删除 `/mnt/f/collections/pixiv小说自整理`（3634 txt）
- 删除 `/mnt/f/collections/Revvlee@H小说合集-210911`（33 txt）
- 删除 `/mnt/f/novel`（8262 文件）
- 保留 `/mnt/f/novel_clean`（6954 清理后 txt）

### 已决定暂不处理（仍在下载中）
- `小说数据5.5W`
- `小说`
- `7万篇小说-按拼音首字排序`
- `6699部成人小说、色情小说、黄色小说`（约 3875 zip + 2833 bc!，等下载完成后再处理）

### 技术坑记录
- **WSL drvfs NTFS 权限限制**：`sudo rm`、`find -delete`、`os.remove`、`cmd.exe /c del`、`win32 API 删除` 全部无法删除 NTFS 分区文件
- **metadata 选项坑**：加 `uid/gid,metadata` 重新挂载会导致目录 I/O 错误，需要 `sudo mount -t drvfs F: /mnt/f`（不带 options）才能恢复
- **长文件名问题**：`mv` 在部分超长文件名（~260+ 字符）上失败

## Calibre 操作

### 已删除
- **ID 9459**：**《北国的春天》** — TXT 源文件内容已损坏（非编码问题，字符本身乱码），已在 calibre-web 直接删除。
- **批量清理 3729 个编码损坏的 txt**：中文比例 < 10% 且含 `Ŀ¼Ĵ` 等乱码字符 → 书库从 ~12000 本降至 **8285 本**
- **169 个小文件（< 10KB）**：多为 12 字节垃圾文件（Mac OS X 残留等） → 书库降至 **8116 本**
- **28 个二进制内容文件**：ID 12026「QN)zhQ」等 0% 中文的乱码文件 → 书库降至 **8087 本**

### 删除方式记录
- 手动 sqlite3 操作 metadata.db 完成删除（需先停止 calibre-server）
- 删除须清理：`books` 表中记录 + 文件系统中对应目录
- 重启 calibre-server 验证

### 书名清洗 & 作者提取
- **46 本缺作者的书名**：从书名（含 `作者：xxx`）提取作者到 author 字段，书名改为"未知"
  - 部分提取有尾巴（如 `素元\u3000珪', '`），后手动清洗修复
  - **重要**：提取作者时应优先使用 `data.name`（原始文件名）而非 `title`（清洗后的书名）
- **2289 本书名含作者标记**：书名中残留 `作者：xxx` 但作者字段已有值，尚未处理

### Calibre 字段区别
- `books.title`：清洗后的书名（可编辑修改）
- `data.name`：导入时的原始文件名（保留原始信息）

## Calibre Skill 更新
- **旧 skill 弃用**：`calibre-title-cleaner` 已废弃并删除
- **新 skill 上线**：`calibre-cleaner` 已发布，包含：
  - 书名清洗 & 作者提取（保留原函数）
  - 脏数据检测：中文 < **10%** 即判脏（不再要求同时含乱码字符）
  - 小文件清理：< 10KB 的文件
  - 完整操作流程
- **Skill 路径**：`~/.openclaw/workspace/storage/skills/calibre-cleaner/SKILL.md`
# 2026-06-24 每日笔记

## 文件清理：源文件和 zip

### 已完成
- 删除 `/mnt/f/collections/pixiv小说自整理`（3634 txt）
- 删除 `/mnt/f/collections/Revvlee@H小说合集-210911`（33 txt）
- 删除 `/mnt/f/novel`（8262 文件）
- 保留 `/mnt/f/novel_clean`（6954 清理后 txt）

### 已决定暂不处理（仍在下载中）
- `小说数据5.5W`
- `小说`
- `7万篇小说-按拼音首字排序`
- `6699部成人小说、色情小说、黄色小说`（约 3875 zip + 2833 bc!，等下载完成后再处理）

### 技术坑记录
- **WSL drvfs NTFS 权限限制**：`sudo rm`、`find -delete`、`os.remove`、`cmd.exe /c del`、`win32 API 删除` 全部无法删除 NTFS 分区文件
- **metadata 选项坑**：加 `uid/gid,metadata` 重新挂载会导致目录 I/O 错误，需要 `sudo mount -t drvfs F: /mnt/f`（不带 options）才能恢复
- **长文件名问题**：`mv` 在部分超长文件名（~260+ 字符）上失败

## Calibre 操作

### 已删除
- **ID 9459**：**《北国的春天》** — TXT 源文件内容已损坏（非编码问题，字符本身乱码），已在 calibre-web 直接删除。
- **批量清理 3729 个编码损坏的 txt**：中文比例 < 10% 且含 `Ŀ¼Ĵ` 等乱码字符 → 书库从 ~12000 本降至 **8285 本**
- **169 个小文件（< 10KB）**：多为 12 字节垃圾文件（Mac OS X 残留等） → 书库降至 **8116 本**
- **28 个二进制内容文件**：ID 12026「QN)zhQ」等 0% 中文的乱码文件 → 书库降至 **8087 本**
- **脏数据检测条件简化**：中文 < 10% 即判脏（不再要求同时含乱码字符）

### 删除方式记录
- 手动 sqlite3 操作 metadata.db 完成删除（需先停止 calibre-server）
- 删除须清理：`books` 表中记录 + 文件系统中对应目录
- 重启 calibre-server 验证

### (13:09 session) 大规模书名清洗 & 垃圾清理
- **2334 本书名清洗**：去掉作者/翻译标记，超过 20 个中文字符的截取前 20 个中文
- **2199 本从 data.name（原始文件名）提取作者**并更新 author 字段（比从 title 提取更准确）
- **1130 本 Python 列表格式垃圾书删除**（id>=8000，如 `['xxx', 'R-18', ...]` 等垃圾标题格式）
  - 书库 8087 → **6957 本**
- **17 本书名中网站链接移除**（如 `(www.ziqige.net)`、`soushu2022.com@` 等）
- **7 本逸清书城声明标题** → 书名改为"未知"
- **3 本"内容简介】"声明标题** → 书名改为"未知"
- **1 本 HTML 转义乱码（ID 904，文件已丢失）** → 删除记录
- 当前书库：**6956 本**

### 作者提取失败案例
- ID 3099 `全明星系列 TXT 作者：未知` ➔ 作者为"未知"，无法提取
- ID 9489 `本书唯一作者：无弦...` ➔ 提取出长尾巴，后手动修复

### Calibre 字段区别
- `books.title`：清洗后的书名（页面显示，可编辑）
- `data.name`：导入时的原始文件名（保留"作者：xxx"等原始信息，更适合提取作者）

## Calibre Skill 更新
- **旧 skill 弃用**：`calibre-title-cleaner` 已废弃并删除
- **新 skill 上线**：`calibre-cleaner` 已发布，包含：
  - 书名清洗 & 作者提取（保留原函数）
  - 脏数据检测：中文 < **10%** 即判脏
  - 小文件清理：< 10KB 的文件
  - 完整操作流程
  - 新规则：网站链接移除、声明开头清理、前 20 中文字符截取
  - **作者提取优先从 data.name 而非 title**
- **Skill 路径**：`~/.openclaw/workspace/storage/skills/calibre-cleaner/SKILL.md`

## 待处理
- [ ] 用户确认后更新 skill 文档（已提交提案，待应用）
# 2026-06-24 每日笔记

## 文件清理：源文件和 zip

### 已完成
- 删除 `/mnt/f/collections/pixiv小说自整理`（3634 txt）
- 删除 `/mnt/f/collections/Revvlee@H小说合集-210911`（33 txt）
- 删除 `/mnt/f/novel`（8262 文件）
- 保留 `/mnt/f/novel_clean`（6954 清理后 txt）

### 已决定暂不处理（仍在下载中）
- `小说数据5.5W`
- `小说`
- `7万篇小说-按拼音首字排序`
- `6699部成人小说、色情小说、黄色小说`（约 3875 zip + 2833 bc!，等下载完成后再处理）

### 技术坑记录
- **WSL drvfs NTFS 权限限制**：`sudo rm`、`find -delete`、`os.remove`、`cmd.exe /c del`、`win32 API 删除` 全部无法删除 NTFS 分区文件
- **metadata 选项坑**：加 `uid/gid,metadata` 重新挂载会导致目录 I/O 错误，需要 `sudo mount -t drvfs F: /mnt/f`（不带 options）才能恢复
- **长文件名问题**：`mv` 在部分超长文件名（~260+ 字符）上失败

## Calibre 操作

### 已删除
- **ID 9459**：**《北国的春天》** — TXT 源文件内容已损坏（非编码问题，字符本身乱码），已在 calibre-web 直接删除。
- **批量清理 3729 个编码损坏的 txt**：中文比例 < 10% 且含 `Ŀ¼Ĵ` 等乱码字符 → 书库从 ~12000 本降至 **8285 本**
- **169 个小文件（< 10KB）**：多为 12 字节垃圾文件（Mac OS X 残留等） → 书库降至 **8116 本**
- **28 个二进制内容文件**：ID 12026「QN)zhQ」等 0% 中文的乱码文件 → 书库降至 **8087 本**
- **脏数据检测条件简化**：中文 < 10% 即判脏（不再要求同时含乱码字符）

### 删除方式记录
- 手动 sqlite3 操作 metadata.db 完成删除（需先停止 calibre-server）
- 删除须清理：`books` 表中记录 + 文件系统中对应目录
- 重启 calibre-server 验证

### (13:09 session) 大规模书名清洗 & 垃圾清理
- **2334 本书名清洗**：去掉作者/翻译标记，超过 20 个中文字符的截取前 20 个中文
- **2199 本从 data.name（原始文件名）提取作者**并更新 author 字段（比从 title 提取更准确）
- **1130 本 Python 列表格式垃圾书删除**（id>=8000，如 `['xxx', 'R-18', ...]` 等垃圾标题格式）
  - 书库 8087 → **6957 本**
- **17 本书名中网站链接移除**（如 `(www.ziqige.net)`、`soushu2022.com@` 等）
- **7 本逸清书城声明标题** → 书名改为"未知"
- **3 本"内容简介】"声明标题** → 书名改为"未知"
- **1 本 HTML 转义乱码（ID 904，文件已丢失）** → 删除记录
- 当前书库：**6956 本**

### 作者提取失败案例
- ID 3099 `全明星系列 TXT 作者：未知` ➔ 作者为"未知"，无法提取
- ID 9489 `本书唯一作者：无弦...` ➔ 提取出长尾巴，后手动修复

### Calibre 字段区别
- `books.title`：清洗后的书名（页面显示，可编辑）
- `data.name`：导入时的原始文件名（保留"作者：xxx"等原始信息，更适合提取作者）

## Calibre Skill 更新
- **旧 skill 弃用**：`calibre-title-cleaner` 已废弃并删除
- **新 skill 上线**：`calibre-cleaner` 已发布，包含：
  - 书名清洗 & 作者提取（保留原函数）
  - 脏数据检测：中文 < **10%** 即判脏
  - 小文件清理：< 10KB 的文件
  - 完整操作流程
  - 新规则：网站链接移除、声明开头清理、前 20 中文字符截取
  - **作者提取优先从 data.name 而非 title**
- **Skill 路径**：`~/.openclaw/workspace/storage/skills/calibre-cleaner/SKILL.md`

## 待处理
- [ ] 用户确认后更新 skill 文档（已提交提案，待应用）

## (14:56 session) novel_clean 导入到 Calibre

### 背景
- 源文件 `/mnt/f/novel_clean`（共 ~3505 个 GB18030 编码 txt 文件，全部为正常中文小说）
- 用户要求"先清理后导入"，先过滤再导入 Calibre

### 过滤操作
- **143 个文件名无意义文件**（纯数字 `1.txt`、数字段 `1~10.txt`、单字名 `变.txt`）：用户确认删除纯数字文件
- **删除纯数字文件名 24 个**：使用 python 结合 WSL `cmd.exe /c del` 方式删除
- **31 个文件名中的数字序号前缀清理**（如 `14659 - 可爱的班长.txt` → `可爱的班长.txt`）
- 剩余 **2505 个**文件

### 导入尝试
- 尝试 `calibredb add` 分 50 批导入，前 10 批因 Calibre 进程残留锁而失败
- 后续批次部分成功后又遇到锁定问题
- 切换为 Python 直写 SQLite + 复制文件到书库目录，碰到 `UNIQUE constraint` 问题（calibredb 分配的 ID 有 gap，不连续）
- calibredb 最终成功导入了 **1403 本**（书库从 6956 → **8359 本**）
- 剩余 **1102 本**待用户自行补导
- **数据备份**：`metadata.db.backup.20260624-1338` 已创建
- **Calibre-Web 已重启**

### 给用户的命令
```bash
# 先停 Calibre-Web
docker compose -f /home/yangxuan/calibre/compose.yml down
# 备份
cp /home/yangxuan/calibre/books/metadata.db /home/yangxuan/calibre/books/metadata.db.backup.$(date +%Y%m%d-%H%M)
# 导入剩余文件
cd /home/yangxuan/calibre
find /mnt/f/novel_clean -maxdepth 1 -name "*.txt" -print0 | xargs -0 -n 50 calibredb add --library-path /home/yangxuan/calibre/books
# 重启
docker compose -f /home/yangxuan/calibre/compose.yml up -d
```
