NAMING_CONVENTION.md•5.53 kB
# 📁 文件命名规范
## 🎯 概述
为了提供更好的文件管理和查找体验,我们采用了一套标准化的文件命名规范。这套规范适用于所有从QQ频道下载的媒体文件,包括图片、视频、动图等。
**当前目标频道**: [https://pd.qq.com/g/5yy11f95s1](https://pd.qq.com/g/5yy11f95s1)
## 📝 命名格式
```
{帖子序号:03d}_{媒体类型}_{媒体序号:02d}_{发帖时间}.{扩展名}
```
### 🔤 格式说明
- **帖子序号**: 3位数字,从001开始,表示帖子的收集顺序
- **媒体类型**: 英文标识,表示媒体类型
- **媒体序号**: 2位数字,从01开始,表示该帖子中的第几个媒体
- **时间戳**: 格式为 `YYYYMMDD_HHMMSS`,**使用发帖时间而非下载时间**
- **扩展名**: 文件的实际扩展名(.png, .mp4, .gif等)
## 📊 命名示例
### 🖼️ 图片文件
```
001_image_01_20250823_133951.jpg # 第1个帖子的第1张图片
001_image_02_20250823_133951.jpg # 第1个帖子的第2张图片
002_image_01_20250823_140000.jpg # 第2个帖子的第1张图片
```
### 🔄 新旧命名对比
```
旧格式: hellokitty_B_2754a96830bd08001441152205341266100X60_1_20250823_133951.jpg
新格式: 001_image_01_20250823_133951.jpg
优势: 简洁明了,去掉了复杂的哈希值,保留了所有必要信息
```
### 📊 命名逻辑说明
```
抓取顺序: 新帖子在前,旧帖子在后
命名编号: 新帖子获得最小编号,旧帖子获得最大编号
示例:
- 抓取顺序1 (最新) → 命名编号001
- 抓取顺序2 (较新) → 命名编号002
- 抓取顺序3 (新) → 命名编号003
- ...
- 抓取顺序6 (最旧) → 命名编号006
```
**注意**: 序号只分配给有图片的帖子,确保序号连续且符合直觉
### 🔄 增量更新逻辑
```
当有新帖子更新时,系统会智能管理序号:
1. 已存在帖子: 保持原有序号不变
2. 新帖子: 获得新的连续序号
3. 序号冲突检测: 自动避免重复编号
4. 动态映射: 支持帖子的实时更新
示例场景:
- 第一次下载: 6个有图片的帖子 (001-006)
- 新增2个有图片的帖子: 新帖子获得007、008编号
- 更新现有帖子: 保持原有序号
- 结果: 8个有图片的帖子 (001-008),序号连续且无冲突
**重要**: 序号只分配给有图片的帖子,无图片的帖子不参与序号分配
```
### 🎬 视频文件
```
003_video_01_20250823_150000.mp4 # 第3个帖子的第1个视频
005_video_01_20250823_160000.mp4 # 第5个帖子的第1个视频
```
### 🎞️ 动图文件
```
004_gif_01_20250823_145000.gif # 第4个帖子的第1个动图
006_gif_02_20250823_170000.gif # 第6个帖子的第2个动图
```
## 🎯 命名规范优势
### 1. 📅 **按发帖顺序排列**
- `001_`, `002_`, `003_` 表示发帖时间顺序(旧→新)
- 便于按时间顺序浏览内容
- **编号逻辑**: 新帖子获得较大编号,旧帖子获得较小编号
### 2. 🎯 **简洁明了**
- 去掉了复杂的哈希值和冗余信息
- 文件名更加清晰易读
### 3. 🏷️ **媒体类型清晰标识**
- `image_` - 静态图片
- `video_` - 视频文件
- `gif_` - 动图文件
- 快速识别文件类型
### 4. 🔢 **媒体序号明确**
- `01`, `02`, `03` 表示帖子中的媒体顺序
- 便于找到特定帖子的所有媒体
- 同一帖子的多个媒体文件按顺序编号
### 5. ⏰ **发帖时间保留**
- 格式:`YYYYMMDD_HHMMSS`
- **使用发帖时间而非下载时间**
- 用于文件排序和去重
- 便于追踪帖子发布时间
### 6. 📁 **便于文件管理**
- 支持按名称排序
- 便于批量操作
- 清晰的目录结构
- 支持按帖子或媒体类型筛选
## 🔄 目录结构
```
data/dayupdate/
└── {帖子数}_posts_{日期}/
├── images/ # 静态图片
├── videos/ # 视频文件
├── gifs/ # 动图文件
└── unknown/ # 未知类型
```
## 🚀 使用方法
### 自动命名
系统会自动按照规范命名所有下载的文件,无需手动操作。
### 增量更新
系统支持智能的增量更新,确保:
- 已存在帖子的序号保持不变
- 新帖子获得连续的序号
- 避免序号冲突和重复
- 支持帖子的动态更新
### 文件查找
- **按帖子查找**: 使用 `001_*` 查找第1个帖子的所有媒体
- **按类型查找**: 使用 `*_image_*` 查找所有图片
- **按时间查找**: 使用 `*_20250823_*` 查找特定日期的文件
### 批量操作
- **重命名**: 支持批量重命名操作
- **移动**: 可以按类型或帖子批量移动文件
- **删除**: 支持按条件批量删除
## 📋 注意事项
1. **序号连续性**: 帖子序号从001开始,连续编号
2. **媒体序号**: 每个帖子的媒体序号从01开始
3. **时间戳**: **使用发帖时间,不是下载时间**
4. **扩展名**: 保持原始文件格式,不强制转换
5. **兼容性**: 支持Windows、Linux、macOS等系统
## 🔧 技术实现
命名规范在 `src/multimedia_hellokitty_downloader.py` 中实现:
```python
def download_media_file(self, session, url, media_type, extension, post_idx, media_index, media_type_str):
# 生成规范化的文件名
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
filename = f"{post_idx:03d}_{media_type_str}_{media_index:02d}_{timestamp}{extension}"
```
## 📞 支持
如果您在使用过程中遇到任何问题,或有改进建议,请随时联系开发团队。