Exemplo n.º 1
0
async def set_admin(bot, event):
    gid = event.group_id
    u_priv = priv.get_user_priv(event)
    if u_priv >= sv.manage_priv:
        for m in event.message:
            if m.type == 'at' and m.data['qq'] != 'all':
                user = int(m.data['qq'])
                await bot.set_group_admin(group_id=gid,
                                          user_id=user,
                                          enable=True)
        await bot.send(event, '我好了')
    else:
        await bot.send(event, '才不听你的呢')
Exemplo n.º 2
0
async def ban_user(bot, event):
    gid = event.group_id
    u_priv = priv.get_user_priv(event)
    if u_priv < sv.manage_priv:
        return
    msg = event.message.extract_plain_text().strip()
    if not msg:
        return
    try:
        uid = int(msg)
        await bot.set_group_ban(group_id=gid, user_id=uid, duration=60)
        await bot.send(event, '我好了')
    except Exception as ex:
        sv.logger.exception(ex)
Exemplo n.º 3
0
async def unban_user(bot, event):
    gid = event.group_id
    u_priv = priv.get_user_priv(event)
    if u_priv < sv.manage_priv:
        return
    sid = event.self_id
    owner = await bot.get_group_member_info(user_id=sid, group_id=gid)
    role = owner['role']
    if role == 'member':
        await bot.send(event, '咱又不是管理,你找错人了')
        return
    try:
        uid = int(event.message[0].data['qq'])
        await bot.set_group_ban(group_id=gid, user_id=uid, duration=0)
        await bot.send(event, '我好了')
    except Exception as ex:
        sv.logger.error(ex)
Exemplo n.º 4
0
async def set_group_notice(bot, event):
    gid = event.group_id
    content = event.message.extract_plain_text().strip()
    if not content:
        return
    sid = event.self_id
    owner = await bot.get_group_member_info(user_id=sid, group_id=gid)
    role = owner['role']
    if role == 'member':
        await bot.send(event, '咱又不是管理,你找错人了')
        return
    u_priv = priv.get_user_priv(event)
    if u_priv >= sv.manage_priv:
        await bot._send_group_notice(group_id=gid, content=content)
        await bot.send(event, '我好了')
    else:
        await bot.send(event, '才不听你的呢')
Exemplo n.º 5
0
async def set_group_name(bot, event):
    gid = event.group_id
    name = event.message.extract_plain_text().strip()
    if not name:
        await bot.finish(event, '群名都没有的你设置个锤子')
    sid = event.self_id
    owner = await bot.get_group_member_info(user_id=sid, group_id=gid)
    role = owner['role']
    if role == 'member':
        await bot.send(event, '咱又不是管理,你找错人了')
        return
    u_priv = priv.get_user_priv(event)
    if u_priv >= sv.manage_priv:
        await bot.set_group_name(group_id=gid, group_name=name)
        await bot.send(event, '我好了')
    else:
        await bot.send(event, '才不听你的呢')
Exemplo n.º 6
0
async def update_wiki(bot, ev: CQEvent):
    if priv.get_user_priv(ev) < priv.SUPERUSER:
        return
    local_version = get_file_md5()
    download_addres = 'https://wiki.calloy.com.cn/version.json'
    f = requests.get(download_addres)
    with open(os.path.join(os.path.dirname(__file__), 'version.json'), "wb") as code:
        code.write(f.content)
    with open(os.path.join(os.path.dirname(__file__), 'version.json'), "rb") as file:
        version = json.load(file) 
    if version['hash'] == local_version:
        await bot.send(ev, f'已是最新版本,无需更新')
    else:
        db_request = requests.get(version['url'])
        with open(os.path.join(os.path.dirname(__file__), 'data.db'), "wb") as db:
            db.write(db_request.content)
        result = version['content']
        await bot.send(ev, f'{result}')
Exemplo n.º 7
0
async def switch(bot, ctx):
    global g_config
    global g_open_groups
    msg = ctx['raw_message']
    switch.gpid = ctx['group_id']
    u_priv = priv.get_user_priv(ctx)
    if u_priv < priv.ADMIN:
        return
    if msg == '提高AI概率':
        g_open_groups.add(switch.gpid)
        g_config['open_groups'] = list(g_open_groups)
        save_config(g_config)
        await bot.send(ctx, '本群AI概率已提高', at_sender=True)

    elif msg == '降低AI概率':
        g_open_groups.discard(switch.gpid)
        g_config['open_groups'] = list(g_open_groups)
        save_config
        await bot.send(ctx, '本群AI概率已降低', at_sender=True)
Exemplo n.º 8
0
async def switch(bot, ctx):
    global g_config
    global g_open_groups
    msg = ctx['raw_message']
    switch.gpid = ctx['group_id']
    u_priv = priv.get_user_priv(ctx)
    if u_priv < priv.ADMIN:
        return
    if msg == '开启对线':
        g_open_groups.add(switch.gpid)
        g_config['open_groups'] = list(g_open_groups)
        save_config(g_config)
        await bot.send(ctx, '本群对线模式已开启,bot将以100%的几率回复群聊消息', at_sender=True)

    elif msg == '关闭对线':
        g_open_groups.discard(switch.gpid)
        g_config['open_groups'] = list(g_open_groups)
        save_config
        await bot.send(ctx, '本群对线模式已关闭,bot将以10%的几率回复群聊消息', at_sender=True)
Exemplo n.º 9
0
async def unset_admin(bot, event):
    gid = event.group_id
    sid = event.self_id
    owner = await bot.get_group_member_info(user_id=sid, group_id=gid)
    role = owner['role']
    if role == 'member':
        await bot.send(event, '咱又不是管理,你找错人了')
        return
    u_priv = priv.get_user_priv(event)
    if u_priv >= sv.manage_priv:
        for m in event.message:
            if m.type == 'at' and m.data['qq'] != 'all':
                user = int(m.data['qq'])
                await bot.set_group_admin(group_id=gid,
                                          user_id=user,
                                          enable=False)
        await bot.send(event, '我好了')
    else:
        await bot.send(event, '才不听你的呢')
Exemplo n.º 10
0
async def ban_user(bot, event):
    gid = event.group_id
    u_priv = priv.get_user_priv(event)
    if u_priv < sv.manage_priv:
        return
    msg = event.message.extract_plain_text().strip()
    sid = event.self_id
    owner = await bot.get_group_member_info(user_id=sid, group_id=gid)
    role = owner['role']
    if role == 'member':
        await bot.send(event, '咱又不是管理,你找错人了')
        return
    try:
        uid = int(event.message[0].data['qq'])
        min = 1 if not msg else int(msg)
        ban = min * 60
        await bot.set_group_ban(group_id=gid, user_id=uid, duration=ban)
        await bot.send(event, '我好了')
    except Exception as ex:
        sv.logger.error(ex)
async def add_reply_for_group(bot, event):
    uid = event['user_id']
    gid = event.get('group_id')
    user_priv = get_user_priv(event)
    user_quata = get_user_quota(user_priv)

    await R.save_image(event)

    qu = event.raw_message.split('你答')[0].strip('有人问').strip()
    ans = event.raw_message.split('你答')[1].strip()
    rec = Record(qu, ans, uid, gid, 1)

    if rec.count_user_records(uid) >= user_quata:
        await bot.send(event, '您的额度不足,请删除记录后再来', at_sender=True)
        return

    if rec.insert_database():
        await bot.send(event, '问答添加成功', at_sender=True)
        if rec.get_records:
            global RECORDS
            RECORDS = rec.get_records()
    else:
        await bot.send(event, '问答添加失败,问答不规范或者冲突', at_sender=True)
Exemplo n.º 12
0
async def setqa(bot, context):
    message = context['raw_message']
    # print(priv.get_user_priv(context))
    if message.startswith('我问'):
        msg = message[2:].split('你答', 1)
        if len(msg[1]) == 0 or len(msg[0]) == 0:
            await bot.send(context, '发送“我问xxx你答yyy”我才能记住', at_sender=False)
            return
        q, a = msg
        if 'granbluefantasy.jp' in q or 'granbluefantasy.jp' in a:
            # await bot.send(context, '骑空士还挺会玩儿?爬!\n', at_sender=True)
            return
        if q not in answers:
            answers[q] = {}
        a = await cqimage(a)
        answers[q][union(context['group_id'], context['user_id'])] = a
        Question.replace(
            quest=q,
            rep_group=context['group_id'],
            rep_member=context['user_id'],
            answer=a,
            creator=context['user_id'],
            create_time=time.time(),
        ).execute()
        await bot.send(context, f'好的我记住了', at_sender=False)
    elif message.startswith('大家问') or message.startswith('有人问'):
        if priv.get_user_priv(context) < priv.ADMIN:
            await bot.send(context, f'只有管理员才可以用{message[:3]}', at_sender=False)
            return
        msg = message[3:].split('你答', 1)
        if len(msg[1]) == 0:
            await bot.send(context, f'发送“{message[:3]}xxx你答yyy”我才能记住', at_sender=False)
            return
        q, a = msg
        a = await cqimage(a)
        if q not in answers:
            answers[q] = {}
        answers[q][union(context['group_id'], 1)] = a
        Question.replace(
            quest=q,
            rep_group=context['group_id'],
            rep_member=1,
            answer=a,
            creator=context['user_id'],
            create_time=time.time(),
        ).execute()
        await bot.send(context, f'好的我记住了', at_sender=False)
    elif message.startswith('不要回答') or message.startswith('不再回答'):
        q = context['raw_message'][4:]
        ans = answers.get(q)
        if ans is None:
            await bot.send(context, f'我不记得有这个问题', at_sender=False)
        specific = union(context['group_id'], context['user_id'])
        a = ans.get(specific)
        if a:
            Question.delete().where(
                Question.quest == q,
                Question.rep_group == context['group_id'],
                Question.rep_member == context['user_id'],
            ).execute()
            del ans[specific]
            if not ans:
                del answers[q]
            await bot.send(context, f'我不再回答"{a}"了', at_sender=False)

        if priv.get_user_priv(context) < priv.ADMIN:
            await bot.send(context, f'只有管理员才能删除"有人问"的问题', at_sender=False)
            return
        wild = union(context['group_id'], 1)
        a = ans.get(wild)
        if a:
            Question.delete().where(
                Question.quest == q,
                Question.rep_group == context['group_id'],
                Question.rep_member == 1,
            ).execute()
            del ans[wild]
            if not ans:
                del answers[q]
            await bot.send(context, f'我不再回答"{a}"了', at_sender=False)