async def block_user(bot, event):

    if event.user_id not in bot.config.SUPERUSERS:
        return

    message = event.message
    param = message.extract_plain_text()
    delta = get_sec(param)
    if isinstance(delta, Exception):
        await bot.send(event, f"参数错误:{str(delta)}")
        return
    if delta == (0, 0, 0):
        delta = (8, 0, 0)
    suspend = timedelta(hours=delta[0], minutes=delta[1], seconds=delta[2])

    count = 0
    for m in message:
        if m.type == 'at' and m.data['qq'] != 'all':
            uid = int(m.data['qq'])
            priv.set_block_user(uid, suspend)
            count += 1

    if count > 0:
        msg = f"已拉黑{count}位用户"
        if delta[0] > 0:
            msg += f"{delta[0]}小时"
        if delta[1] > 0:
            msg += f"{delta[1]}分钟"
        if delta[2] > 0:
            msg += f"{delta[2]}秒"
        await bot.send(event, msg, at_sender=True)
    else:
        await bot.send(event, "没有用户被拉黑", at_sender=True)
Пример #2
0
async def anti_holo(bot, ev: CQEvent):
    priv.set_block_user(ev.user_id, timedelta(minutes=1))
    await util.silence(ev, 60, skip_su=False)
    await bot.send(ev, f'{ms.at(ev.user_id)} 你可少看点虚拟管人吧😅')
    try:
        await bot.delete_msg(self_id=ev.self_id, message_id=ev.message_id)
    except CQHttpError:
        pass
Пример #3
0
async def anti_holo(bot: HoshinoBot, ev: CQEvent):
    priv.set_block_user(ev.user_id, timedelta(minutes=1))
    await util.silence(ev, 60, skip_su=False)
    pic = get_tiangou_pic()
    if pic:
        await bot.send(ev, pic.cqcode)
    else:
        await bot.send(ev, 'vtb舔狗,爬!')
    await bot.delete_msg(self_id=ev.self_id, message_id=ev.message_id)
Пример #4
0
async def ban_word(bot, ev: CQEvent):
    arg = str(ev.raw_message)
    rex = re.compile(r'臭鼬|猫猫|凯露')
    m = rex.search(arg)
    if m:
        user_id = ev.user_id
        msg_from = str(user_id)
        if ev.message_type == 'group':
            msg_from += f'@[群:{ev.group_id}]'
        elif ev.message_type == 'discuss':
            msg_from += f'@[讨论组:{ev.discuss_id}]'
        hoshino.logger.critical(
            f'Self: {ev.self_id}, Message {ev.message_id} from {msg_from}: {ev.message}'
        )
        await bot.send(ev, random.choice(REBEAT_WORD))
        priv.set_block_user(user_id, timedelta(hours=0.01))
        # pic = R.img(f"chieri{random.randint(1, 4)}.jpg").cqcode
        # await session.send(f"不理你啦!バーカー\n{pic}", at_sender=True)
        await util.silence(ev, 60)
async def unblock_user(bot, event):

    if event.user_id not in bot.config.SUPERUSERS:
        return

    message = event.message
    count = 0
    for m in message:
        if m.type == 'at' and m.data['qq'] != 'all':
            uid = int(m.data['qq'])
            priv.set_block_user(uid, timedelta(seconds=0))
            count += 1

    if count > 0:
        msg = f"已解除{count}位用户的拉黑"
    else:
        msg = "没有用户被解除拉黑"

    await bot.send(event, msg, at_sender=True)
Пример #6
0
async def rank_query_by_leader(bot, ev: CQEvent):
    """
    通过会长名字查询排名
    """
    uid = ev.user_id
    if not _lmt.check(uid):
        await bot.send(ev, '您查询得太快了, 请稍等一会儿', at_sender=True)
        return
    leader_name = ev.message.extract_plain_text()
    if inject_regex.match(leader_name):
        await bot.send(ev, "发现尝试注入行为, 您将被拉黑24小时")
        set_block_user(uid, timedelta(hours=24))
        await notify_master(f'群{ev.group_id}内的{uid}尝试向clanrank注入。')
        return
    info = get_rank(leader_name, "leader")
    if type(info) == int:
        msg = f'查询出现错误{info},请联系维护者'
    else:
        msg = process(info, leader_id_query_list)
        msg += f"查询有{_time_limit}秒冷却"
        _lmt.start_cd(uid)
    await bot.send(ev, msg)
Пример #7
0
async def anti_holo(bot: HoshinoBot, ev: CQEvent):
    priv.set_block_user(ev.user_id, timedelta(minutes=1))
    await util.silence(ev, 60, skip_su=False)
    await bot.send(ev, HAHAHA_VTB_TIANGOU.cqcode)
    await bot.delete_msg(self_id=ev.self_id, message_id=ev.message_id)
Пример #8
0
async def block(bot, ev: CQEvent):
    raw_msg = ev['raw_message'].replace(" ", "")
    lig = re.search(r"(.block\d{1,4})", raw_msg)
    if lig:
        lig = lig.group(0).replace(".block", "").replace(" ", "")
    btype = 0
    if not lig:
        lig = re.search(r"(.blockuid\d{1,4})", raw_msg)
        if lig:
            lig = lig.group(0).replace(".blockuid", "").replace(" ", "")
        btype = 1
        if not lig:
            lig = re.search(r"(.blockgid\d{1,4})", raw_msg)
            if lig:
                lig = lig.group(0).replace(".blockgid", "").replace(" ", "")
            btype = 2
    if not lig:
        await bot.send(ev, f"指令不正确{lig}")
        return

    if ev.user_id not in bot.config.SUPERUSERS:
        return

    if int(lig) > MAX_TIME:
        block_time = MAX_TIME
    else:
        block_time = int(lig)

    print(block_time)
    print(btype)
    count = 0
    msg = ''
    #拉黑@用户
    if btype == 0:
        for m in ev.message:
            if m.type == 'at' and m.data['qq'] != 'all':
                uid = int(m.data['qq'])
                priv.set_block_user(uid, timedelta(hours=block_time))
                if block_time == 0:
                    msg = msg + f"已将用户{uid}解除拉黑\n"
                else:
                    msg = msg + f"已将用户{uid}列入黑名单{block_time}小时\n"
                count += 1
    #拉黑qq号
    elif btype == 1:
        block_msg = raw_msg.replace(".blockuid" + lig, "")
        block_ulst = block_msg.split("@")
        print(block_ulst)
        for buid in block_ulst:
            print('buid:' + buid)
            if not buid:
                continue
            uid = int(buid)
            priv.set_block_user(uid, timedelta(hours=block_time))
            if block_time == 0:
                msg = msg + f"已将用户{uid}解除拉黑\n"
            else:
                msg = msg + f"已将用户{uid}列入黑名单{block_time}小时\n"
            count += 1
    #拉黑群号
    elif btype == 2:
        block_msg = raw_msg.replace(".blockgid" + lig, "")
        block_glst = block_msg.split("@")
        print(block_glst)
        for bgid in block_glst:
            if not bgid:
                continue
            gid = int(bgid)
            priv.set_block_group(gid, timedelta(hours=block_time))
            if block_time == 0:
                msg = msg + f"已将群{gid}解除拉黑\n"
            else:
                msg = msg + f"已将群{gid}列入黑名单{block_time}小时\n"
            count += 1
    if count:
        await bot.send(ev, msg)