# photo-organizer
照片整理技能

让 AI 帮你整理照片：去重、归档、批量处理

> ✅ **跨平台支持**：兼容 Mac（macOS）和 Windows 系统

---

## 🎯 这个技能做什么

你有没有这样的硬盘？
- 几千张照片堆在一个文件夹里，乱糟糟的
- 同一张照片出现了好几份，不知道该留哪份
- 想按日期归档，但手动整理太费时间

**这个技能帮你做到：**
- 🔍 自动发现重复照片（文件名 + 文件大小 + 拍摄日期三个条件同时满足才算重复）
- 📁 按日期自动归档到 YYYYMMDD 子目录
- 📋 整理前先给你看计划，你确认了才执行
- 💾 支持断点续传，中断了可以从断点继续
- 🔄 支持增量整理，只整理新增的照片

---

## ❌ 没有它的时候

- 手动在文件夹里翻找重复文件 → 累死人
- 照片全堆在根目录 → 想找某天的照片找不到
- 硬盘越来越满，不知道哪来的重复文件

## ✅ 有了它之后

- 告诉 AI "帮我整理照片" → 自动扫描、去重、归档
- 整理计划发给你确认 → 你掌控一切，不会误删
- 按月份目录逐步处理 → 随时可以中断、继续

---

## 🚀 怎么开始

**直接跟我说就行：**

**Mac 用户：**
```
帮我整理照片
S盘：/Volumes/照片备份/
T盘：/Volumes/照片整理/
```

**Windows 用户：**
```
帮我整理照片
S盘：E:\照片备份\nT盘：E:\照片整理\n```

我会扫描两个路径，生成整理计划发给你看。你确认了，我才开始执行。

> 💡 **不知道硬盘路径？**
> - **Mac**：在 Finder 里找到你的硬盘，右键"显示简介"，可以看到"位置"路径。或者在终端输入 `ls /Volumes/` 可以看到所有已挂载的硬盘。
> - **Windows**：在"此电脑"里找到你的硬盘，查看盘符路径（如 `E:\`）。或者在文件资源管理器地址栏可以看到完整路径。

---

## 📋 整理流程

### 第一步：扫描并生成计划

我扫描你的 S 盘和 T 盘，生成整理计划，大概长这样：

```
📊 整理计划

S盘：/Volumes/照片备份/
T盘：/Volumes/照片整理/

S盘概况：
  总照片数：23,456 张
  视频数：  1,234 个
  日期范围：2009-01 ～ 2026-05

预计结果：
  重复文件：3,847 个（将跳过/去重）
  新增到T盘：19,609 个文件
  释放空间：18.6 GB

整理步骤（共 208 个月份目录）：
  1. 2009/01  124 个文件
  2. 2009/02  89 个文件
  ...
  208. 2026/05  56 个文件

⚠️ 免责声明
- S盘完全不动，技能只读取不修改
- 删除操作仅在T盘内部进行，基于三条件判定
- 强烈建议整理前备份重要数据

输入「确认执行」开始整理，输入「取消」放弃
```

### 第二步：你确认

输入 `确认执行`，我开始按月份目录逐步处理。

每处理完一个月份目录，我会告诉你进度：

```
✅ 已完成：2009/01 ～ 2015/06（78/208 个月份）
📦 已复制：4,321 个文件
🗑️  已去重：1,234 个文件
💾 释放空间：6.8 GB
⏳ 正在处理：2015/07
```

### 第三步：完成总结

处理完后，我会给你一份总结报告。

---

## 🛡️ S盘完全不动 — 这是最重要的承诺

**S盘只读不写，技能不会修改或删除 S盘的任何文件。**

- 复制：先把文件复制到 T 盘
- 去重：只在 T 盘内部删除重复文件
- S盘：从头到尾不动一根手指

即使整理到一半停下来，S盘的文件也完好无损。

---

## 🔍 去重三条件

三个条件**同时**满足，才算重复：

| 条件 | 说明 |
|------|------|
| **1. 文件名匹配** | 规范化后相同（"规范化文件名"只是我们判断重复用的，内部处理用，不会改你原始文件名） |
| **2. 大小相近** | 两个文件大小差异 ≤ 0.1% |
| **3. 日期一致** | 拍摄日期完全相同（秒级精度） |

### 这些算重复 ✅

- `IMG_9845.jpg` 和 `IMG_9845_2.jpg`，大小相同，日期相同 → **是重复**，副本会被跳过
- `DSC_0001.nef` 和 `DSC_0001_2.nef`，大小相同，日期相同 → **是重复**，副本会被跳过
- `照片001.jpg` 和 `照片001_2.jpg`，大小相同，日期相同 → **是重复**，副本会被跳过

### 这些不算重复 ❌

- `IMG_9845.jpg`（3MB）和 `IMG_9845_2.jpg`（5MB），大小差太多 → **不是重复**，都保留
- `IMG_9845.jpg`（2020:01:01 拍摄）和 `IMG_9845_2.jpg`（2020:01:02 拍摄），日期差1秒 → **不是重复**，都保留
- `IMG_9845.jpg` 和 `IMG_9846.jpg`，文件名差1个数字 → **不是重复**，都保留

### 日期来源

- **照片**：优先用 EXIF 拍摄日期
- **视频 / 无EXIF的照片**：用文件的修改时间

### ⚠️ 关于文件名：不会动你的原始文件

**"规范化文件名"只是我们内部用来判断重复的，它不会被用来改名你的真实文件。**

举例：`IMG_9845_2.jpg` 这个文件名，你磁盘上的实际文件依然叫 `IMG_9845_2.jpg`，技能不会把它改成 `IMG_9845.jpg`。

只有在一种情况下，技能会主动改名：**T盘目标目录里已有同名文件、但内容不同（三条件不一致）**，这时技能会在拷贝时加 `_2` 或 `_3` 后缀，确保你的文件都能存进去。

---

## ⚙️ 可选参数

### 指定文件类型

```
帮我整理照片，只处理 JPG 和 MP4
S盘：/Volumes/照片备份/
T盘：/Volumes/照片整理/
```

支持的格式：JPG、PNG、HEIC、NEF、ARW、DNG、RAW、MP4、MOV 等 30+ 种。

### sync=off：T盘不纳入去重（默认）

T盘已有文件不动，只把 S盘的文件复制进去。如果文件名完全相同就跳过。

适合场景：T盘是你自己整理过的，不想再动它。

### sync=on：T盘也参与去重

我会先扫描 T盘的标准目录（YYYYMM/YYYYMMDD 结构的目录），把所有文件纳入去重范围。如果 S盘某个文件和 T盘某个文件三条件匹配，就跳过复制。

适合场景：T盘也想一起清理一遍，节省空间。

---

## 📂 T盘目录结构说明

### 标准目录
遵循 `YYYYMM/` 月份 + `YYYYMMDD/` 日期结构的目录，技能会处理其中的文件。
```
/Volumes/照片整理/
├── 200901/           ← 标准月份目录
│   ├── 20090101/     ← 标准日期目录
│   │   ├── IMG_0001.jpg
│   │   └── IMG_0002.jpg
│   └── 20090115/
│       └── DSC_0001.nef
└── 200902/
    └── ...
```

### 非标准目录
**不符合上述结构的目录，技能会原样保留，不处理其中的文件。**

举例：
- `2009年照片/`、`备份/`、`手机照片/` 这类中文命名目录 → **保留不动**
- `未分类/`、`临时/`、`misc/` 这类含义模糊的目录 → **保留不动**
- 根目录直接堆着的文件（不放在 YYYYMMDD 子目录里）→ **会帮你移入对应日期目录**

> 💡 T盘的非标准目录通常是历史遗留的，技能不会动它们，但也不会处理里面的文件。

---

## ⚠️ 使用注意

- **S盘和T盘不要搞反**：S盘是来源（不动），T盘是目标（接收文件）
- **整理前建议备份**：重要数据建议提前备份
- **整理中可以随时说停**：输入 `暂停` 或 `停止`，我会保存当前进度
- **硬盘格式**：ExFAT、NTFS、APFS、Mac OS Extended 等格式均兼容，中文文件名正常处理
- **跨平台**：Mac 和 Windows 都可以使用，路径格式请参考上方示例
- **硬盘重新连接**：外置硬盘拔插后，请确认盘符/挂载路径是否变化

---

## 🆘 常见问题

| 问题 | 原因 | 解决办法 |
|------|------|----------|
| AI 说找不到照片 | 路径写错了 | 检查硬盘是否已连接，确认路径正确（Mac: `/Volumes/`，Windows: `E:\`） |
| 整理到一半停了 | 硬盘断开或中断 | 重新连接硬盘，告诉 AI "继续整理" |
| T盘空间不够 | 目标硬盘空间不足 | 换一个空间更大的硬盘 |
| 某些文件被删了 | 三条件判定为重复 | 三条件是严格判断，确认被删的文件确实不需要 |
| 中文文件名乱码 | 文件系统兼容性问题 | 尝试在命令提示符中用 `chcp 65001` 切换到 UTF-8 编码 |

---

## 📊 整理前 vs 整理后

```
整理前（Mac）：                        整理后：
/Volumes/照片备份/                 /Volumes/照片整理/
├── IMG_0001.jpg          →        200901/
├── IMG_0002.jpg                   20090101/
├── IMG_0003.jpg                   IMG_0001.jpg
└── ...                            IMG_0002.jpg
                                   IMG_0003.jpg
                                  20090115/
                                  DSC_0001.nef
                                  ...

整理前（Windows）：                      整理后：
E:\照片备份\                     E:\照片整理\n├── IMG_0001.jpg          →        200901\n├── IMG_0002.jpg                   20090101\n├── IMG_0003.jpg                   IMG_0001.jpg
└── ...                            IMG_0002.jpg
                                   IMG_0003.jpg
                                  20090115\n                                  DSC_0001.nef
                                  ...
```

---

**准备好了？把你的 S 盘和 T 盘路径告诉我，开始整理吧！** 🦞