koishi-plugin-memes
Version:
生成 Meme 表情包,支持 MemeGenerator API、内置模板和自定义 API 接口
123 lines (83 loc) • 4.04 kB
Markdown
# koishi-plugin-memes
[](https://www.npmjs.com/package/koishi-plugin-memes)
生成 Meme 表情包,支持 MemeGenerator API、内置模板和自定义 API 接口
## 功能介绍
支持多种类型的 Meme 表情包生成,包括:
- **MemeGenerator API**: 支持数百种表情模板,可根据关键词搜索和匹配
- **内置模板表情**: 预设模板如"你要被夹"、"你要被炸"等图片生成
- **自定义API接口**: 可通过配置文件自定义外部API,轻松扩展功能
插件采用多级命令结构,支持参数解析、图片处理和用户交互,可以生成丰富的表情包。
## 使用方法
插件提供了多种命令用于生成表情包:
### 基础命令
- `memes <key> [args]` - 使用模板ID或关键词生成表情
- `memes.list [page]` - 列出可用模板列表(可用"all"参数查看全部)
- `memes.info [key]` - 获取模板详细信息和使用参数(支持模板ID和关键词)
- `memes.search <keyword>` - 搜索表情模板(支持模板ID、关键词和标签)
- `memes.refresh` - 刷新表情模板缓存(需要管理员权限)
### 内置模板
- `memes.make.jiazi [target]` - 生成"你要被夹"图片
- `memes.make.tntboom [target]` - 生成"你要被炸"图片
### 自定义API(需开启loadApi)
- `memes.api [type] [arg1] [arg2]` - 使用自定义API生成表情
- `memes.api.list [page]` - 列出可用自定义API表情
- `memes.api.reload` - 重载自定义API配置(需要管理员权限)
### 示例
1. 查看模板列表:
```text
memes.list
memes.list 2 # 查看第二页
memes.list all # 查看所有模板
```
2. 生成表情包:
```text
memes play @用户 # 基础用法
memes ba_say 你好 -character=1 # 使用参数
memes 摸 @用户 -circle # 使用关键词和参数
```
3. 查询模板信息:
```text
memes.info ba_say # 查看模板详情
memes.search 吃 # 搜索包含"吃"的模板
```
4. 内置模板:
```text
memes.make.jiazi @用户 # 生成夹子图
memes.make.jiazi 123456789 # 使用QQ号
memes.make.tntboom # 使用自己头像
```
5. 自定义API:
```text
memes.api.list # 查看自定义API列表
memes.api 吃 @用户 # 生成"吃@用户"的表情包
```
## 参数说明
插件支持多种方式指定用户和图片:
- **用户指定**:
- `@用户` - 直接@用户
- `@123456789` - @特定QQ号
- `123456789` - 直接输入QQ号 #除基础命令之外
- **图片与文本**:
- 引用带图片的消息会自动提取图片
- 可以在消息中直接插入图片
- 多个文本参数用空格分隔
- 包含空格的文本用引号括起来:`"这是 带空格 的文本"`
- **选项参数**:
- 使用`-参数=值`或`-参数`格式指定参数
- 例如:`-character=1`、`-circle=true`、`-flip`
## 配置选项
- `loadApi`: 是否开启自定义API生成功能(默认: false)
- `genUrl`: MemeGenerator API地址(默认: "localhost:2233")
- `useMiddleware`: 是否开启中间件关键词匹配(默认: false)
- `requirePrefix`: 是否开启关键词指令前缀(默认: true)
## 关键词匹配中间件
当开启`useMiddleware`选项时,插件会监听聊天消息中的关键词并自动生成表情包:
- 若`requirePrefix`开启,则需要以机器人指令前缀开头的消息才会触发匹配
- 若`requirePrefix`关闭,则所有消息都会尝试匹配关键词
例如,配置前缀为`.`,发送`.摸 @某人`时,若"摸"是有效的表情关键词,将自动生成摸头表情。
## 自定义API配置
可通过修改 `data/memes.json` 文件来自定义API表情,每个表情类型需要包含:
- `description`:表情包描述
- `apiEndpoint`:生成表情的API地址,支持以下占位符:
- `${arg1}`:第一个参数(用户ID或文本)
- `${arg2}`:第二个参数(另一个用户ID或文本)