{"id":31970741,"url":"https://github.com/clansty/icalingua-sticker-funbox-convert","last_synced_at":"2025-10-14T19:19:21.668Z","repository":{"id":315382545,"uuid":"1057695347","full_name":"clansty/Icalingua-Sticker-FunBox-Convert","owner":"clansty","description":"把 icalingua 的本地表情包文件夹转换为 FunBox 格式。让 AI 写的，能用","archived":false,"fork":false,"pushed_at":"2025-09-16T05:00:22.000Z","size":5,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-02T09:48:41.159Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/clansty.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-16T05:00:05.000Z","updated_at":"2025-09-16T05:01:27.000Z","dependencies_parsed_at":"2025-09-18T10:17:31.820Z","dependency_job_id":"e6fe4592-5830-400a-9ebf-c85801d2d9ec","html_url":"https://github.com/clansty/Icalingua-Sticker-FunBox-Convert","commit_stats":null,"previous_names":["clansty/icalingua-sticker-funbox-convert"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/clansty/Icalingua-Sticker-FunBox-Convert","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clansty%2FIcalingua-Sticker-FunBox-Convert","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clansty%2FIcalingua-Sticker-FunBox-Convert/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clansty%2FIcalingua-Sticker-FunBox-Convert/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clansty%2FIcalingua-Sticker-FunBox-Convert/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clansty","download_url":"https://codeload.github.com/clansty/Icalingua-Sticker-FunBox-Convert/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clansty%2FIcalingua-Sticker-FunBox-Convert/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279020654,"owners_count":26086895,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-14T19:19:12.901Z","updated_at":"2025-10-14T19:19:21.663Z","avatar_url":"https://github.com/clansty.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 表情包转换工具\r\n\r\n这个 TypeScript 脚本可以将 icalingua 的表情包目录转换为 FunBox 的配置格式。\r\n\r\n## 功能特点\r\n\r\n- 🧹 **自动清理**: 转换前自动删除现有 FunBox 配置和存储\r\n- 📦 **智能分类**: 外层文件自动归类为 \"Default\" 集合，内层文件夹按名称创建集合\r\n- 🔍 **格式识别**: 自动识别图片格式，包括无扩展名的文件\r\n- 📝 **元数据生成**: 自动生成 MD5 哈希值和自定义标题\r\n- 🎯 **类型安全**: 使用 TypeScript 编写，类型安全\r\n\r\n## 使用方法\r\n\r\n```bash\r\nbun Convert.ts \u003c源目录路径\u003e \u003cFunBox目录路径\u003e\r\n```\r\n\r\n### 示例\r\n\r\n```bash\r\nbun Convert.ts \"C:\\Users\\Clansty\\AppData\\Roaming\\icalingua\\stickers\" \"D:\\Configs\\FunBox\\Sticker\"\r\n```\r\n\r\n## 转换规则\r\n\r\n### 源目录结构\r\n```\r\nicalingua/stickers/\r\n├── 图片文件1.jpg          # 外层文件\r\n├── 图片文件2.gif          # 外层文件\r\n├── 文件夹1/              # 内层文件夹\r\n│   ├── 图片1.png\r\n│   └── 图片2.gif\r\n├── 文件夹2/              # 内层文件夹\r\n│   ├── 图片3.jpg\r\n│   └── 图片4.webp\r\n└── .stfolder/            # 隐藏文件夹（跳过）\r\n```\r\n\r\n### 转换后的 FunBox 结构\r\n```\r\nFunBox/Sticker/\r\n├── Config/\r\n│   ├── packs             # 主索引文件\r\n│   ├── p_Default         # Default集合配置\r\n│   ├── p_文件夹1         # 文件夹1集合配置\r\n│   └── p_文件夹2         # 文件夹2集合配置\r\n└── Storage/\r\n    ├── Default/          # Default集合存储\r\n    │   ├── MD5哈希值1    # 无扩展名\r\n    │   └── MD5哈希值2    # 无扩展名\r\n    ├── 文件夹1/          # 文件夹1存储\r\n    │   ├── MD5哈希值3    # 无扩展名\r\n    │   └── MD5哈希值4    # 无扩展名\r\n    └── 文件夹2/          # 文件夹2存储\r\n        ├── MD5哈希值5    # 无扩展名\r\n        └── MD5哈希值6    # 无扩展名\r\n```\r\n\r\n## 配置说明\r\n\r\n- **集合ID**: 使用文件夹名称（外层文件使用\"Default\"）\r\n- **集合名称**: 与ID相同\r\n- **自定义标题**: 图片文件名（去除扩展名）\r\n- **文件命名**: 使用MD5哈希值作为文件名（无扩展名）\r\n- **文件夹过滤**: 自动跳过空文件夹和以\".\"开头的隐藏文件夹\r\n\r\n## 支持的图片格式\r\n\r\n- JPG/JPEG\r\n- PNG\r\n- GIF\r\n- WebP\r\n- BMP\r\n- SVG\r\n- 无扩展名文件（通过文件头自动识别）\r\n\r\n## 注意事项\r\n\r\n⚠️ **重要**: 转换前会完全清空目标 FunBox 目录的现有配置和存储，请确保备份重要数据！\r\n\r\n## 错误处理\r\n\r\n脚本包含完整的错误处理机制：\r\n- 目录存在性检查\r\n- 文件格式验证\r\n- 转换过程异常捕获\r\n- 详细的进度日志输出\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclansty%2Ficalingua-sticker-funbox-convert","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclansty%2Ficalingua-sticker-funbox-convert","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclansty%2Ficalingua-sticker-funbox-convert/lists"}