https://github.com/clansty/icalingua-sticker-funbox-convert
把 icalingua 的本地表情包文件夹转换为 FunBox 格式。让 AI 写的,能用
https://github.com/clansty/icalingua-sticker-funbox-convert
Last synced: 8 months ago
JSON representation
把 icalingua 的本地表情包文件夹转换为 FunBox 格式。让 AI 写的,能用
- Host: GitHub
- URL: https://github.com/clansty/icalingua-sticker-funbox-convert
- Owner: clansty
- Created: 2025-09-16T05:00:05.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-09-16T05:00:22.000Z (9 months ago)
- Last Synced: 2025-10-02T09:48:41.159Z (9 months ago)
- Language: TypeScript
- Size: 4.88 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 表情包转换工具
这个 TypeScript 脚本可以将 icalingua 的表情包目录转换为 FunBox 的配置格式。
## 功能特点
- 🧹 **自动清理**: 转换前自动删除现有 FunBox 配置和存储
- 📦 **智能分类**: 外层文件自动归类为 "Default" 集合,内层文件夹按名称创建集合
- 🔍 **格式识别**: 自动识别图片格式,包括无扩展名的文件
- 📝 **元数据生成**: 自动生成 MD5 哈希值和自定义标题
- 🎯 **类型安全**: 使用 TypeScript 编写,类型安全
## 使用方法
```bash
bun Convert.ts <源目录路径>
```
### 示例
```bash
bun Convert.ts "C:\Users\Clansty\AppData\Roaming\icalingua\stickers" "D:\Configs\FunBox\Sticker"
```
## 转换规则
### 源目录结构
```
icalingua/stickers/
├── 图片文件1.jpg # 外层文件
├── 图片文件2.gif # 外层文件
├── 文件夹1/ # 内层文件夹
│ ├── 图片1.png
│ └── 图片2.gif
├── 文件夹2/ # 内层文件夹
│ ├── 图片3.jpg
│ └── 图片4.webp
└── .stfolder/ # 隐藏文件夹(跳过)
```
### 转换后的 FunBox 结构
```
FunBox/Sticker/
├── Config/
│ ├── packs # 主索引文件
│ ├── p_Default # Default集合配置
│ ├── p_文件夹1 # 文件夹1集合配置
│ └── p_文件夹2 # 文件夹2集合配置
└── Storage/
├── Default/ # Default集合存储
│ ├── MD5哈希值1 # 无扩展名
│ └── MD5哈希值2 # 无扩展名
├── 文件夹1/ # 文件夹1存储
│ ├── MD5哈希值3 # 无扩展名
│ └── MD5哈希值4 # 无扩展名
└── 文件夹2/ # 文件夹2存储
├── MD5哈希值5 # 无扩展名
└── MD5哈希值6 # 无扩展名
```
## 配置说明
- **集合ID**: 使用文件夹名称(外层文件使用"Default")
- **集合名称**: 与ID相同
- **自定义标题**: 图片文件名(去除扩展名)
- **文件命名**: 使用MD5哈希值作为文件名(无扩展名)
- **文件夹过滤**: 自动跳过空文件夹和以"."开头的隐藏文件夹
## 支持的图片格式
- JPG/JPEG
- PNG
- GIF
- WebP
- BMP
- SVG
- 无扩展名文件(通过文件头自动识别)
## 注意事项
⚠️ **重要**: 转换前会完全清空目标 FunBox 目录的现有配置和存储,请确保备份重要数据!
## 错误处理
脚本包含完整的错误处理机制:
- 目录存在性检查
- 文件格式验证
- 转换过程异常捕获
- 详细的进度日志输出