[qq机器人]nonebot2 群管插件2.0

本次群管插件更新了入群申请审批,飞机票(就是踢人),全体禁言等功能,还请各位大佬自行探索

不多废话,上源码

from email import message
from nonebot import on_keyword, on_regex, on_request,on_command
from nonebot.typing import T_State
from nonebot.adapters.onebot.v11 import GroupMessageEvent,Bot,GroupRequestEvent
import warnings
from nonebot.permission import *
import re


warnings.filterwarnings("ignore")

# 撤回消息
che = on_keyword({'广告', '沙雕', '广告', 'md', '妈的', '卧槽', '嘛的', '操你妈', '操你', '加vx','操','草','傻逼','SB','sb','nt','脑瘫','骚','CNM','CNm','CnM','Cnm','cNM','cNm','cnM'})
qtk = on_regex(pattern = r'^开启全禁$')
qtg = on_regex(pattern = r'^关闭全禁$')
jy = on_keyword({'禁'})
jj = on_keyword({'解'})
group_remove = on_keyword({'踢'})
group_sq = on_request()
agree_apply = on_regex(pattern = r'^同意申请$')
disagree_apply = on_regex(pattern = r'^拒绝申请$')
zr = 1648576390



@che.handle()
async def c(bot: Bot, event: GroupMessageEvent, state: T_State):
    mid = event.message_id
    group = event.group_id
    qq = event.user_id
    sj = 300
    print(mid)
    print(group)
    await bot.delete_msg(message_id=mid)
    await bot.set_group_ban(group_id=group,user_id=qq,duration=sj)
    await che.finish(message=f'@{qq} 你的发言可能包含敏感词汇,这里禁言5分钟警告一下')

@qtk.handle()
async def j(bot: Bot, event: GroupMessageEvent, state: T_State):
    group = event.group_id
    qq = event.user_id
    if qq == zr:
        await bot.set_group_whole_ban(group_id=group,enable=True)
        await che.finish(message=f'好的大大,辞辞已经为您开启全体禁言了')
    else:
        await che.finish(message=f'你没有资格命令我!')

@qtg.handle()
async def g(bot: Bot, event: GroupMessageEvent, state: T_State):
    group = event.group_id#获取当前群号
    qq = event.user_id
    try:
        if qq == zr:
            await bot.set_group_whole_ban(group_id=group,enable=False)
            await che.finish(message=f'好的大大,辞辞已经为您关闭全体禁言了')
        else:
            await che.finish(message=f'你没有资格命令我!')
    except IndexError:
        k = 'error'




@jy.handle()
async def sj(bot: Bot, event: GroupMessageEvent, state: T_State):
    try:
        data = str(event.message)
        qq2 = event.user_id#获取用户id
        qq = re.findall(r'qq=(.+?)]',data)
        qq = int(qq[0])
        sj1 = re.findall(r'] (.+)',data)
        sj = sj1[0]
        sj = int(sj)*60
        if qq2 == zr:
            await bot.set_group_ban(group_id=event.group_id,user_id=qq,duration=sj)
            await jy.finish(message=f'好的大大,辞辞已禁言\nQQ:{qq}\n时间:{sj1[0]}分钟')
        else:
            await jy.finish(message=f'你没有资格命令我!')
    except IndexError:
        print('Error')

@jj.handle()
async def sj(bot: Bot, event: GroupMessageEvent, state: T_State):
    try:
        data = str(event.message)
        qq2 = event.user_id#获取用户id
        qq = re.findall(r'qq=(.+?)]',data)
        qq = int(qq[0])
        if qq2 == zr:
            await bot.set_group_ban(group_id=event.group_id,user_id=qq,duration=0)
            await jj.finish(message=f'好的大大,辞辞已解除禁言\nQQ:{qq}')
        else:
            await jj.finish(message=f'你没有资格命令我!')
    except IndexError:
        print('Error')
    
    
@group_sq.handle()
async def sq(bot: Bot, event: GroupRequestEvent, state: T_State):
    qq_id = event.user_id
    message = event.comment#获取验证信息
    global flag_id
    flag_id = event.flag#申请进群的flag
    global type_id
    type_id = event.sub_type#请求信息的类型
    await group_sq.finish(message=f'有人申请进群\nQQ:{qq_id}\n验证消息:{message}\n同意/拒绝申请')


@agree_apply.handle()
async def sn(bot: Bot, event: GroupMessageEvent, state: T_State):    
    if event.sender.role == "admin" or event.sender.role == "owner":
        await bot.set_group_add_request(flag=flag_id,sub_type=type_id,approve=True)
    else:
        await group_remove.finish(message=f'对不起,你没有权限')

@disagree_apply.handle()
async def sn(bot: Bot, event: GroupMessageEvent, state: T_State):    
    if event.sender.role == "admin" or event.sender.role == "owner":
        await bot.set_group_add_request(flag=flag_id,sub_type=type_id,approve=False,reason='机器人自动审批,如有误判请联系群主或其他管理员')
    else:
        await group_remove.finish(message=f'对不起,你没有权限')
    
@group_remove.handle()
async def move(bot: Bot, event: GroupMessageEvent, state: T_State):
    async def group_admin(event: GroupMessageEvent) -> bool:
        return event.sender.role == "admin"
    async def group_owner(event: GroupMessageEvent) -> bool:
        return event.sender.role == "owner"
    print(group_admin(event))
    if event.sender.role == "admin" or event.sender.role == "owner":
        data = str(event.message)
        group_id = event.group_id
        qq_id = re.findall(r'qq=(.+?)]',data)
        qq_id = qq_id[0]
        await bot.set_group_kick(group_id=group_id,user_id=qq_id,reject_add_request=False)
        await group_remove.finish(message=f'已将QQ:{qq_id}移除群聊')
    else:
        await group_remove.finish(message=f'对不起,你没有权限')
    

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萌新源

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值