Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
3d1c8672dd | |||
05e936a067 | |||
5c93d3a30f | |||
61e81a1174 | |||
f8840f9024 | |||
ba596d4f06 | |||
baba5dc342 | |||
ba119d85c9 |
10
.drone.yml
10
.drone.yml
@ -56,8 +56,8 @@ steps: # 定义管道的执行步骤
|
||||
from_secret: docker_passwd
|
||||
dockerfile: Dockerfile
|
||||
mirror: https://fpswa5tm.mirror.aliyuncs.com
|
||||
registry: https://git.liliyamol.cn:8081
|
||||
repo: git.liliyamol.cn:8081/mol/mol-robot
|
||||
registry: https://git.liliyamol.cn
|
||||
repo: git.liliyamol.cn/mol/mol-robot
|
||||
|
||||
- name: rebuild cache # 构建缓存
|
||||
image: drillster/drone-volume-cache
|
||||
@ -97,11 +97,11 @@ steps:
|
||||
secrets: [docker_username, docker_passwd]
|
||||
script:
|
||||
- echo ==-----==开始部署==-----==
|
||||
- docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWD git.liliyamol.cn:8081
|
||||
- docker pull git.liliyamol.cn:8081/mol/mol-robot:latest
|
||||
- docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWD git.liliyamol.cn
|
||||
- docker pull git.liliyamol.cn/mol/mol-robot:latest
|
||||
- list=$(docker ps -a | grep mol-robot* | awk '{print $1}')
|
||||
- test "$list" = "" && echo "none mol-robot containers running" || docker stop $list && docker container rm $list
|
||||
# 过滤出dockerImages的id, 删除none镜像
|
||||
- docker run -d -p 16808:8080 --name=mol-robot_${DRONE_BUILD_NUMBER} --env-file /mnt/data/opt/mol-robot/.env git.liliyamol.cn:8081/mol/mol-robot:latest
|
||||
- docker run -d -p 16808:8080 --restart=always --name=mol-robot_${DRONE_BUILD_NUMBER} --env-file /mnt/data/opt/mol-robot/.env git.liliyamol.cn/mol/mol-robot:latest
|
||||
# - docker rmi $(docker images | grep "none" | awk '{print $3}')
|
||||
- echo ==-----==部署成功==-----==
|
||||
|
89
README.md
89
README.md
@ -1,3 +1,88 @@
|
||||
### 模儿的 bot
|
||||
### 模儿bot
|
||||
|
||||
友链:[mirai-js](https://drincann.github.io/Mirai-js/#/v2.x/Bot?id=on)
|
||||
模儿bot是一个提供与mirai-api-http交互的webhook服务器,并提供一些小工具的bot。
|
||||
|
||||
#### 功能
|
||||
1. webhook服务器
|
||||
> http请求方式, method="post", enctype="application/json", path=/
|
||||
|
||||
请求示例
|
||||
```
|
||||
{
|
||||
"event": "sendForwardMessage",
|
||||
"subs": {
|
||||
"groups": [],
|
||||
"users": []
|
||||
},
|
||||
"from": "新闻",
|
||||
"messages": [
|
||||
{
|
||||
"message": "PlayStation Plus二档会员十二月阵容:给他爱5、FF起源等",
|
||||
"imgUrls": [
|
||||
"http://img2.a9vg.com/i/a9-article-list_x256/cms3.0/2023/1214/20231214104321-2309-33362.jpg"
|
||||
],
|
||||
"originUrl": "http://www.a9vg.com/article/215182"
|
||||
}
|
||||
],
|
||||
"body": "Hello World",
|
||||
}
|
||||
```
|
||||
|
||||
请求参数说明
|
||||
发送转发消息请求
|
||||
|参数|类型|说明|是否必填|可选项|
|
||||
|--|--|--|--|--|
|
||||
|event|string|发送消息的类型|是|`sendForwardMessage`|
|
||||
|subs|object|指定接收消息的群或者人|是|--|
|
||||
|from|string|转发消息时,指定发送人的名称|否|--|
|
||||
|messages|message[]|转发的消息列表|是|--|
|
||||
|
||||
发送一般消息请求
|
||||
|参数|类型|说明|是否必填|可选项|
|
||||
|--|--|--|--|--|
|
||||
|event|string|发送消息的类型|是|`sendMessage2`|
|
||||
|subs|object|指定接收消息的群或者人|是|--|
|
||||
|from|string|转发消息时,指定发送人的名称|否|--|
|
||||
|messages|string[]|转发的消息列表|是|--|
|
||||
|imgUrls|string[]|图片地址|否|--|
|
||||
|originUrl|string|源地址|否|--|
|
||||
|at|number|需要at的qq号|否|--|
|
||||
|
||||
|
||||
|
||||
2. 聊天指令
|
||||
1. 厨娘
|
||||
- 随机菜肴推荐 (#模儿晚上吃什么)
|
||||
|
||||
#### 安装运行
|
||||
1. 直接运行
|
||||
```shell
|
||||
npm i -g node@18.17.0
|
||||
|
||||
npm i
|
||||
|
||||
touch .env
|
||||
|
||||
# 修改 .env 文件
|
||||
vim .env
|
||||
|
||||
node app.js
|
||||
```
|
||||
2. docker 运行(开发中)
|
||||
|
||||
#### 环境配置
|
||||
```
|
||||
MIRAI_HTTP_API_HOST=<mirai-api-http地址>
|
||||
MIRAI_HTTP_API_VERIFY_KEY=<mirai-api-http密钥>
|
||||
WEB_HOOK_PORT=<webhook服务器端口>
|
||||
QQ=<机器人qq号>
|
||||
DEFAULT_SUB_GROUPS=<默认订阅群(暂时无用)>
|
||||
DEFAULT_SUB_USERS=<默认订阅人 (暂时无用)>
|
||||
IMG_NUMBER_IN_ONE_MESSAGE=<单个消息允许的配图数量>
|
||||
COOK_SUB_GROUPS=<订阅厨娘的群>
|
||||
MASTER=<管理员qq号>
|
||||
```
|
||||
|
||||
#### 友链
|
||||
- [mirai-js](https://drincann.github.io/Mirai-js/#/v2.x/Bot?id=on)
|
||||
- [今天我们来做菜](https://github.com/YunYouJun/cook)
|
||||
|
2
app.js
2
app.js
@ -53,4 +53,6 @@ let retryCount = 0;
|
||||
|
||||
webhook.startListen(port);
|
||||
logger(`开始监听端口: ${port}`);
|
||||
|
||||
bot.sendMessageToFriend(+process.env.MASTER, '模儿bot已就绪!');
|
||||
})(process.env.WEB_HOOK_PORT);
|
||||
|
12
bot/index.js
12
bot/index.js
@ -20,23 +20,23 @@ export default class CreateBot {
|
||||
});
|
||||
}
|
||||
|
||||
async sendMessageToFriend(qq, message) {
|
||||
sendMessageToFriend(qq, message) {
|
||||
logger(`发送好友[${qq}]消息进入消息队列`);
|
||||
return this.queue
|
||||
.addMethod(this.bot.sendMessage.bind(this.bot, { friend: qq, message }))
|
||||
.then(
|
||||
(res) => {
|
||||
logger(`发送好友[${qq}]消息成功 ${res}`);
|
||||
return res;
|
||||
return ['success', res];
|
||||
},
|
||||
(e) => {
|
||||
logger.warning(`发送好友[${qq}]消息失败,错误信息${e}`);
|
||||
return Promise.reject(e);
|
||||
return ['failed', e];
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
async sendMessageToGroup(groupId, message) {
|
||||
sendMessageToGroup(groupId, message) {
|
||||
logger(`发送群[${groupId}]消息进入消息队列`);
|
||||
return this.queue
|
||||
.addMethod(
|
||||
@ -45,11 +45,11 @@ export default class CreateBot {
|
||||
.then(
|
||||
(res) => {
|
||||
logger(`发送群[${groupId}]消息成功 ${res}`);
|
||||
return res;
|
||||
return ['success', res];
|
||||
},
|
||||
(e) => {
|
||||
logger.warning(`发送群[${groupId}]消息失败,错误信息${e}`);
|
||||
return Promise.reject(e);
|
||||
return ['failed', e];
|
||||
},
|
||||
);
|
||||
}
|
||||
|
4
package-lock.json
generated
4
package-lock.json
generated
@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "mirai-middle-server",
|
||||
"version": "1.2.0",
|
||||
"version": "1.2.2",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "mirai-middle-server",
|
||||
"version": "1.2.0",
|
||||
"version": "1.2.2",
|
||||
"dependencies": {
|
||||
"dayjs": "^1.11.7",
|
||||
"mirai-js": "^2.8.11",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "mirai-middle-server",
|
||||
"version": "1.2.0",
|
||||
"version": "1.2.2",
|
||||
"description": "使用miraijs开发,用于连接kuginn等外部服务与mirai通信的中转服务器",
|
||||
"author": "mol",
|
||||
"main": "app.js",
|
||||
@ -20,4 +20,4 @@
|
||||
"devDependencies": {
|
||||
"dotenv": "^16.1.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -41,9 +41,9 @@ function cookInit() {
|
||||
|
||||
Bot.bot.on(
|
||||
'FriendMessage',
|
||||
new Middleware().friendFilter(cookSubs.users).textProcessor().done(dealCommon),
|
||||
new Middleware().textProcessor().done(dealCommon),
|
||||
);
|
||||
Bot.sendMessageToFriend(752753679, '测试');
|
||||
Bot.sendMessageToFriend(+process.env.MASTER, '厨娘系统 启动!');
|
||||
logger('cook 初始化完成')
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user