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
|
from_secret: docker_passwd
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
mirror: https://fpswa5tm.mirror.aliyuncs.com
|
mirror: https://fpswa5tm.mirror.aliyuncs.com
|
||||||
registry: https://git.liliyamol.cn:8081
|
registry: https://git.liliyamol.cn
|
||||||
repo: git.liliyamol.cn:8081/mol/mol-robot
|
repo: git.liliyamol.cn/mol/mol-robot
|
||||||
|
|
||||||
- name: rebuild cache # 构建缓存
|
- name: rebuild cache # 构建缓存
|
||||||
image: drillster/drone-volume-cache
|
image: drillster/drone-volume-cache
|
||||||
@ -97,11 +97,11 @@ steps:
|
|||||||
secrets: [docker_username, docker_passwd]
|
secrets: [docker_username, docker_passwd]
|
||||||
script:
|
script:
|
||||||
- echo ==-----==开始部署==-----==
|
- echo ==-----==开始部署==-----==
|
||||||
- docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWD git.liliyamol.cn:8081
|
- docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWD git.liliyamol.cn
|
||||||
- docker pull git.liliyamol.cn:8081/mol/mol-robot:latest
|
- docker pull git.liliyamol.cn/mol/mol-robot:latest
|
||||||
- list=$(docker ps -a | grep mol-robot* | awk '{print $1}')
|
- 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
|
- test "$list" = "" && echo "none mol-robot containers running" || docker stop $list && docker container rm $list
|
||||||
# 过滤出dockerImages的id, 删除none镜像
|
# 过滤出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}')
|
# - docker rmi $(docker images | grep "none" | awk '{print $3}')
|
||||||
- echo ==-----==部署成功==-----==
|
- 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);
|
webhook.startListen(port);
|
||||||
logger(`开始监听端口: ${port}`);
|
logger(`开始监听端口: ${port}`);
|
||||||
|
|
||||||
|
bot.sendMessageToFriend(+process.env.MASTER, '模儿bot已就绪!');
|
||||||
})(process.env.WEB_HOOK_PORT);
|
})(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}]消息进入消息队列`);
|
logger(`发送好友[${qq}]消息进入消息队列`);
|
||||||
return this.queue
|
return this.queue
|
||||||
.addMethod(this.bot.sendMessage.bind(this.bot, { friend: qq, message }))
|
.addMethod(this.bot.sendMessage.bind(this.bot, { friend: qq, message }))
|
||||||
.then(
|
.then(
|
||||||
(res) => {
|
(res) => {
|
||||||
logger(`发送好友[${qq}]消息成功 ${res}`);
|
logger(`发送好友[${qq}]消息成功 ${res}`);
|
||||||
return res;
|
return ['success', res];
|
||||||
},
|
},
|
||||||
(e) => {
|
(e) => {
|
||||||
logger.warning(`发送好友[${qq}]消息失败,错误信息${e}`);
|
logger.warning(`发送好友[${qq}]消息失败,错误信息${e}`);
|
||||||
return Promise.reject(e);
|
return ['failed', e];
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async sendMessageToGroup(groupId, message) {
|
sendMessageToGroup(groupId, message) {
|
||||||
logger(`发送群[${groupId}]消息进入消息队列`);
|
logger(`发送群[${groupId}]消息进入消息队列`);
|
||||||
return this.queue
|
return this.queue
|
||||||
.addMethod(
|
.addMethod(
|
||||||
@ -45,11 +45,11 @@ export default class CreateBot {
|
|||||||
.then(
|
.then(
|
||||||
(res) => {
|
(res) => {
|
||||||
logger(`发送群[${groupId}]消息成功 ${res}`);
|
logger(`发送群[${groupId}]消息成功 ${res}`);
|
||||||
return res;
|
return ['success', res];
|
||||||
},
|
},
|
||||||
(e) => {
|
(e) => {
|
||||||
logger.warning(`发送群[${groupId}]消息失败,错误信息${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",
|
"name": "mirai-middle-server",
|
||||||
"version": "1.2.0",
|
"version": "1.2.2",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "mirai-middle-server",
|
"name": "mirai-middle-server",
|
||||||
"version": "1.2.0",
|
"version": "1.2.2",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"dayjs": "^1.11.7",
|
"dayjs": "^1.11.7",
|
||||||
"mirai-js": "^2.8.11",
|
"mirai-js": "^2.8.11",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "mirai-middle-server",
|
"name": "mirai-middle-server",
|
||||||
"version": "1.2.0",
|
"version": "1.2.2",
|
||||||
"description": "使用miraijs开发,用于连接kuginn等外部服务与mirai通信的中转服务器",
|
"description": "使用miraijs开发,用于连接kuginn等外部服务与mirai通信的中转服务器",
|
||||||
"author": "mol",
|
"author": "mol",
|
||||||
"main": "app.js",
|
"main": "app.js",
|
||||||
@ -20,4 +20,4 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"dotenv": "^16.1.1"
|
"dotenv": "^16.1.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -41,9 +41,9 @@ function cookInit() {
|
|||||||
|
|
||||||
Bot.bot.on(
|
Bot.bot.on(
|
||||||
'FriendMessage',
|
'FriendMessage',
|
||||||
new Middleware().friendFilter(cookSubs.users).textProcessor().done(dealCommon),
|
new Middleware().textProcessor().done(dealCommon),
|
||||||
);
|
);
|
||||||
Bot.sendMessageToFriend(752753679, '测试');
|
Bot.sendMessageToFriend(+process.env.MASTER, '厨娘系统 启动!');
|
||||||
logger('cook 初始化完成')
|
logger('cook 初始化完成')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user