57 lines
1.5 KiB
JavaScript
57 lines
1.5 KiB
JavaScript
const { Bot } = require('mirai-js');
|
|
const Queue = require('../utils/queue');
|
|
const logger = require('../utils/logger');
|
|
|
|
class CreateBot {
|
|
constructor() {
|
|
this.bot = new Bot();
|
|
this.queue = new Queue();
|
|
this.running = false;
|
|
}
|
|
|
|
async open(config) {
|
|
logger(`开始连接 mirai: host: ${config.baseUrl}, qq: ${config.qq}`);
|
|
await this.bot.open({
|
|
baseUrl: config.baseUrl,
|
|
verifyKey: config.verifyKey,
|
|
qq: config.qq,
|
|
});
|
|
}
|
|
|
|
async 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;
|
|
},
|
|
(e) => {
|
|
logger.warning(`发送好友[${qq}]消息失败,错误信息${e}`);
|
|
return Promise.reject(e);
|
|
},
|
|
);
|
|
}
|
|
|
|
async sendMessageToGroup(groupId, message) {
|
|
logger(`发送群[${groupId}]消息进入消息队列`);
|
|
return this.queue
|
|
.addMethod(
|
|
this.bot.sendMessage.bind(this.bot, { group: groupId, message }),
|
|
)
|
|
.then(
|
|
(res) => {
|
|
logger(`发送群[${groupId}]消息成功 ${res}`);
|
|
return res;
|
|
},
|
|
(e) => {
|
|
logger.warning(`发送群[${groupId}]消息失败,错误信息${e}`);
|
|
return Promise.reject(e);
|
|
},
|
|
);
|
|
}
|
|
}
|
|
|
|
module.exports = CreateBot;
|