Files
mol-robot/plugins/cook/index.js
mol ba119d85c9
Some checks are pending
continuous-integration/drone/push Build is running
test
2023-12-14 15:33:41 +08:00

66 lines
1.8 KiB
JavaScript

import pkg from 'mirai-js';
import { cookSubs, command } from '#root/config/index.js';
import { getRandomRecipe } from './api/index.js';
import { genRecipeMessage } from './utils/index.js';
import logger from '#root/utils/logger.js'
const { Middleware, Message } = pkg;
const cookCommand = command.cook;
let Bot;
const commandHandle = {
random: randomCook,
};
async function randomCook(text, data) {
const limit = Number.parseInt(text) > 0 ? Number.parseInt(text) : 5;
const recipeList = await getRandomRecipe(limit);
const message = genRecipeMessage(recipeList, '给你推荐');
switch (data.type) {
case 'GroupMessage':
const forwardMsg = Message.createForwardMessage();
forwardMsg.addForwardNode({
senderId: process.env.QQ,
time: 0,
senderName: '厨娘·模儿',
messageChain: message
})
Bot.sendMessageToGroup(data.sender.group.id, forwardMsg);
break;
case 'FriendMessage':
Bot.sendMessageToFriend(data.sender.id, message);
}
}
function cookInit() {
Bot.bot.on(
'GroupMessage',
new Middleware().groupFilter(cookSubs.groups).textProcessor().done(dealCommon),
);
Bot.bot.on(
'FriendMessage',
new Middleware().friendFilter(cookSubs.users).textProcessor().done(dealCommon),
);
Bot.sendMessageToFriend(+process.env.MASTER, '厨娘系统 启动!');
logger('cook 初始化完成')
}
function dealCommon(data) {
logger('开始处理指令')
const [commandText, ...contentText] = data.text.trim().split(' ');
for (let com of Object.keys(cookCommand)) {
if (cookCommand[com].includes(commandText)) {
commandHandle[com](contentText, data);
break;
}
}
}
export default function install(bot) {
Bot = bot;
cookInit();
logger('cook 插件加载成功')
}