UNPKG

@oebot/core

Version:

能跑就行的 QQ 机器人框架,基于 oicq v2,改自KiviBot(R.I.P.)

169 lines (168 loc) 6.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.configNotice = void 0; const oicq_1 = require("oicq"); const config_1 = require("./commands/config"); const config_2 = require("./config"); const utils_1 = require("../utils"); function buildNotice(title, avatar, content) { return [avatar, `\n〓 ${title} 〓`, `\n${content}`]; } /** 处理消息通知 */ function configNotice(bot) { const { notice, admins } = config_2.oeConf; const { friend, group } = notice; const mainAdmin = bot.pickUser(admins[0]); // 好友私聊 bot.on('message.private', (event) => { if (!config_2.oeConf.notice.enable || !friend.message) return; const { sender: { user_id, nickname }, message } = event; if (user_id === admins[0]) return; const avatar = oicq_1.segment.image((0, utils_1.getQQAvatarLink)(user_id, 100)); const msg = ` 昵称: ${nickname || '未知'} QQ: ${user_id || '未知'} 〓 消息内容 〓\n`.trimStart(); mainAdmin.sendMsg([...buildNotice('私聊消息', avatar, msg), ...message]); }); // 好友申请 bot.on('request.friend.add', async (event) => { if (friend.request.action !== 'ignore') { const action = friend.request.action === 'accept'; await event.approve(action); } if (!config_2.oeConf.notice.enable || !friend.request.enable) return; const { user_id, nickname, comment, source } = event; const avatar = oicq_1.segment.image((0, utils_1.getQQAvatarLink)(user_id, 100)); const msg = ` 昵称: ${nickname || '未知'} QQ: ${user_id || '未知'} 来源: ${source} 附加信息: ${comment} 操作: ${config_1.OperationMap[friend.request.action]} `.trim(); await mainAdmin.sendMsg(buildNotice('好友申请', avatar, msg)); }); // 新增好友 bot.on('notice.friend.increase', async (event) => { if (!config_2.oeConf.notice.enable || !friend.increase) return; const { nickname, user_id } = event; const avatar = oicq_1.segment.image((0, utils_1.getQQAvatarLink)(user_id, 100)); const msg = ` 昵称: ${nickname || '未知'} QQ: ${user_id || '未知'} `.trim(); await mainAdmin.sendMsg(buildNotice('新增好友', avatar, msg)); }); // 好友减少 bot.on('notice.friend.decrease', async (event) => { if (!config_2.oeConf.notice.enable || !friend.decrease) return; const { nickname, user_id } = event; const avatar = oicq_1.segment.image((0, utils_1.getQQAvatarLink)(user_id, 100)); const msg = ` 昵称: ${nickname || '未知'} QQ: ${user_id || '未知'} `.trim(); await mainAdmin.sendMsg(buildNotice('好友减少', avatar, msg)); }); // 邀请 Bot 进群 bot.on('request.group.invite', async (event) => { if (group.request.action !== 'ignore') { const action = group.request.action === 'accept'; await event.approve(action); } if (!config_2.oeConf.notice.enable || !friend.request.enable) return; const { user_id, nickname, group_id, group_name, role } = event; const avatar = oicq_1.segment.image((0, utils_1.getGroupAvatarLink)(group_id, 100)); const msg = ` 目标群聊: ${group_name || '未知'} 目标群号: ${group_id || '未知'} 邀请人: ${nickname || '未知'}(${user_id || '未知'}, ${role}) 操作: ${config_1.OperationMap[group.request.action]} `.trim(); await mainAdmin.sendMsg(buildNotice('邀请进群', avatar, msg)); }); // 新增群聊 bot.on('notice.group.increase', async (event) => { if (!config_2.oeConf.notice.enable || !group.increase) return; const { user_id, group: { group_id, name } } = event; if (user_id !== bot.uin) return; const avatar = oicq_1.segment.image((0, utils_1.getGroupAvatarLink)(group_id, 100)); const msg = ` 群名: ${name || '未知'} 群号: ${group_id || '未知'} `.trim(); await mainAdmin.sendMsg(buildNotice('新增群聊', avatar, msg)); }); // 群聊减少 bot.on('notice.group.decrease', async (event) => { if (!config_2.oeConf.notice.enable || !group.decrease) return; const { user_id, operator_id, group: { group_id, name } } = event; if (user_id !== bot.uin) return; const isKick = operator_id !== bot.uin; const avatar = oicq_1.segment.image((0, utils_1.getGroupAvatarLink)(group_id, 100)); const msg = ` 群名: ${name || '未知'} 群号: ${group_id || '未知'} ${isKick ? `操作人: ${operator_id || '未知'}` : ''} `.trim(); await mainAdmin.sendMsg(buildNotice(isKick ? 'Bot 被踢' : 'Bot 退群', avatar, msg)); }); // 群管理变动 bot.on('notice.group.admin', async (event) => { if (!config_2.oeConf.notice.enable || !group.admin) return; const { user_id, set, group: { group_id, name } } = event; if (user_id !== bot.uin) return; const avatar = oicq_1.segment.image((0, utils_1.getGroupAvatarLink)(group_id, 100)); const msg = ` 群名: ${name || '未知'} 群号: ${group_id || '未知'} 被操作人: ${user_id || '未知'} `.trim(); await mainAdmin.sendMsg(buildNotice(set ? '设置群管理' : '取消群管理', avatar, msg)); }); // Bot 被禁言 bot.on('notice.group.ban', async (event) => { if (!config_2.oeConf.notice.enable || !group.admin) return; const { user_id, duration, operator_id, group: { group_id, name } } = event; if (user_id !== bot.uin) return; const isBan = duration !== 0; const avatar = oicq_1.segment.image((0, utils_1.getGroupAvatarLink)(group_id, 100)); const msg = ` 群名: ${name || '未知'} 群号: ${group_id || '未知'} 操作人: ${operator_id || '未知'} ${isBan ? `时长: ${(0, utils_1.formatDateDiff)(duration * 1000)}` : ''} `.trim(); await mainAdmin.sendMsg(buildNotice(`Bot 被${isBan ? '禁言' : '解除禁言'}`, avatar, msg)); }); // 群转让 bot.on('notice.group.transfer', async (event) => { if (!config_2.oeConf.notice.enable || !group.admin) return; const { user_id, operator_id, group: { group_id, name } } = event; const avatar = oicq_1.segment.image((0, utils_1.getGroupAvatarLink)(group_id, 100)); const msg = ` 群名: ${name || '未知'} 群号: ${group_id || '未知'} 原群主: ${operator_id || '未知'} 新群主: ${user_id || '未知'} `.trim(); await mainAdmin.sendMsg(buildNotice('群聊转让', avatar, msg)); }); } exports.configNotice = configNotice;