An open API service indexing awesome lists of open source software.

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 写的,能用

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 目录的现有配置和存储,请确保备份重要数据!

## 错误处理

脚本包含完整的错误处理机制:
- 目录存在性检查
- 文件格式验证
- 转换过程异常捕获
- 详细的进度日志输出