Ejemplo n.º 1
0
def perm_add(session: CommandSession, permunit: str, Remotely: dict = None):
    if Remotely != None:
        return permissiongroup.perm_add(Remotely['message_type'],
                                        Remotely['sent_id'], Remotely['op_id'],
                                        permgroupname, permunit)
    return permissiongroup.perm_add(
        session.event['message_type'],
        (session.event['group_id'] if session.event['message_type'] == 'group'
         else session.event['user_id']), session.event['user_id'],
        permgroupname, permunit)
async def permAdd(session: CommandSession):
    message_type = session.event['message_type']
    #group_id = (session.event['group_id'] if message_type == 'group' else None)
    user_id = session.event['user_id']
    if message_type != 'private':
        return
    #if perm_check(session,'-listener',user = True):
    #    await session.send('操作被拒绝,权限不足(p)')
    #    return
    logger.info(CQsessionToStr(session))
    arglimit = [
        {
            'name':'groupname', #参数名
            'des':'权限组名', #参数错误描述
            'type':'str', #参数类型int float str list dict (list与dict需要使用函数或正则表达式进行二次处理)
            'strip':True, #是否strip
            'lower':False, #是否转换为小写
            'default':None, #默认值
            'func':None, #函数,当存在时使用函数进行二次处理
            're':None, #正则表达式匹配(match函数)
            'vlimit':{ 
                #参数限制表(限制参数内容,空表则不限制),'*':''表示匹配任意字符串,值不为空时任意字符串将被转变为这个值
            }
        },
        {
            'name':'perm_unit', #参数名
            'des':'权限组名', #参数错误描述
            'type':'str', #参数类型int float str list dict (list与dict需要使用函数或正则表达式进行二次处理)
            'strip':True, #是否strip
            'lower':False, #是否转换为小写
            'default':'', #默认值
            'func':None, #函数,当存在时使用函数进行二次处理
            're':None, #正则表达式匹配(match函数)
            'vlimit':{ 
                #参数限制表(限制参数内容,空表则不限制),'*':''表示匹配任意字符串,值不为空时任意字符串将被转变为这个值
            }
        },
        {
            'name':'msgtype', #参数名
            'des':'消息类型', #参数错误描述
            'type':'str', #参数类型int float str list dict (list与dict需要使用函数或正则表达式进行二次处理)
            'strip':True, #是否strip
            'lower':True, #是否转换为小写
            'default':message_type, #默认值
            'func':None, #函数,当存在时使用函数进行二次处理
            're':None, #正则表达式匹配(match函数)
            'vlimit':{ 
                #参数限制表(限制参数内容,空表则不限制),'*':''表示允许任意字符串,值不为空时任意字符串将被转变为这个值
                '私聊':'private',
                'private':'private',
                '群聊':'group',
                'group':'group',
                '好友':'private',
                '群':'group',
            }
        },
        {
            'name':'send_id', #参数名
            'des':'对象ID', #参数错误描述
            'type':'int', #参数类型int float str list dict (list与dict需要使用函数或正则表达式进行二次处理)
            'strip':True, #是否strip
            'lower':False, #是否转换为小写
            'default':user_id, #默认值
            'func':None, #函数,当存在时使用函数进行二次处理
            're':None, #正则表达式匹配(match函数)
            'vlimit':{ 
                #参数限制表(限制参数内容,空表则不限制),'*':''表示匹配任意字符串,值不为空时任意字符串将被转变为这个值
            }
        }
    ]
    res = argDeal(session.current_arg_text.strip(),arglimit)
    if not res[0]:
        await session.send(res[1]+'=>'+res[2])
        return
    args = res[1]
    if args['perm_unit'] == '':
        args['perm_unit'] = None

    if perm_check(args['msgtype'],args['send_id'],args['groupname'],args['perm_unit']):
        await session.send("该权限已存在!")
        return
    res = perm_add(args['msgtype'],args['send_id'],user_id,args['groupname'],args['perm_unit'])
    await session.send(res[1])