A powerful Koishi plugin for random image/video sending and user image storage with alias system support

- 分割)文件名模板支持以下变量:
| 变量 | 说明 | 示例 |
|------|------|------|
| ${userId} | 用户ID(QQ号) | 123456789 |
| ${username} | 用户名 | 张三 |
| ${timestamp} | 时间戳 | 1640995200001 |
| ${date} | 日期(YYYY-MM-DD) | 2024-01-01 |
| ${time} | 时间(HH-MM-SS) | 14-30-25 |
| ${index} | 文件序号(从1开始) | 1, 2, 3 |
| ${ext} | 文件扩展名 | .jpg, .png, .mp4 |
| ${guildId} | 群组ID | 987654321 |
| ${channelId} | 频道ID | 111222333 |
``
${userId}-${timestamp}-${index}${ext}
→ 123456789-1640995200001-1.jpg
${nickname}_${date}_${time}${ext}
→ 张三_2024-01-01_14-30-25.png
${guildId}_${userId}_${index}${ext}
→ 987654321_123456789_1.gif
`
``
项目根目录/
├── images/ # 图片库目录(imagePath 配置)
│ ├── 角色1-别名1-别名2/ # 文件夹名用 - 分割别名
│ │ ├── image1.jpg
│ │ ├── image2.png
│ │ └── video1.mp4
│ ├── 角色2-萌妹-可爱/
│ │ ├── cute1.gif
│ │ └── cute2.webp
│ ├── 风景-自然-山水/
│ │ ├── nature1.jpg
│ │ └── nature2.png
│ └── 动物-猫咪-喵星人/
│ ├── cat1.jpg
│ ├── cat2.gif
│ └── cat_video.mp4
└── temp/ # 临时存储目录(tempPath 配置)
├── 123456789-1640995200001-1.jpg
├── 123456789-1640995200002-2.png
└── 987654321-1640995200003-1.mp4
文件夹名称使用 - 分割多个别名,用户输入任意一个别名都能匹配到该文件夹:
``
文件夹名: 角色1-别名1-别名2
用户输入: 角色1 ✅ 匹配
用户输入: 别名1 ✅ 匹配
用户输入: 别名2 ✅ 匹配
用户输入: 其他 ❌ 不匹配
当多个文件夹包含相同别名时,系统会:
1. 收集所有匹配的文件夹
2. 随机选择其中一个文件夹
3. 从选定文件夹中随机选择文件
4. 输出警告日志提醒管理员
`
文件夹:
├── 敌意-你好-你好啊/
└── 敌意-第一-帝一/
用户输入: 敌意
→ 系统随机选择其中一个文件夹
→ 输出警告: "检测到别名重名: 输入'敌意'匹配到2个文件夹"
`
#### 1. 直接传图
``
存图 [图片1] [图片2] [图片3]
#### 2. 回复消息存图
``
用户A: [发送图片]
用户B: 存图 # 回复用户A的消息
#### 3. 交互式存图
``
用户: 存图
机器人: 请发送图片或视频
用户: [发送图片]
机器人: 已保存 1 个文件到临时文件夹
直接发送别名即可触发随机发图:
`
用户: 角色1
机器人: [发送随机图片]
用户: 萌妹
机器人: [发送随机图片]
用户: 猫咪
机器人: [发送随机图片或视频]
`
启用 debugMode 后,插件会输出详细的调试信息:
``
[INFO] 收到消息: { userId: '123456789', content: '角色1' }
[INFO] 匹配到的文件夹: ['角色1-别名1-别名2']
[INFO] 随机选择文件夹: 角色1-别名1-别名2
[INFO] 找到媒体文件数量: 5
[INFO] 随机选择文件: image1.jpg
[WARN] 检测到别名重名: 输入"敌意"匹配到2个文件夹: 敌意-你好-你好啊, 敌意-第一-帝一
1. 文件夹命名:使用 - 分割别名,避免使用特殊字符imagePath
2. 路径配置:确保 和 tempPath` 目录存在且有读写权限
3. 别名重名:注意查看警告日志,及时调整重名的别名
4. 文件格式:确保图片和视频文件格式正确
5. 存储空间:定期清理临时文件夹,避免占用过多存储空间
MIT License