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)
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
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)
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)
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)
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)
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)