async def parse(bot: Bot, event: GroupMessageEvent, state: T_State): args = str(event.get_message()).strip().split() if not args: await search_image.reject('你似乎没有发送有效的消息呢QAQ, 请重新发送:') state[state["_current_key"]] = args[0] if state[state["_current_key"]] == '取消': await search_image.finish('操作已取消')
async def special_title(bot: Bot, event: GroupMessageEvent, state: T_State): ''' 群头衔 ''' title = str(event.get_message()) user_id = event.user_id group_id = event.group_id await bot.set_group_special_title(group_id=group_id, user_id=user_id, special_title=title, self_id=bot.self_id)
async def kakin(bot, event: GroupMessageEvent): if event.user_id not in bot.config.SUPERUSERS: return count = 0 for m in event.get_message(): if m.type == 'at' and m.data['qq'] != 'all': uid = int(m.data['qq']) jewel_limit.reset(uid) tenjo_limit.reset(uid) count += 1 if count: await bot.send(event, f"已为{count}位用户充值完毕!谢谢惠顾~")
async def random_repeater(bot: Bot, event: GroupMessageEvent): group_id = event.group_id msg = str(event.get_message()) if group_id not in group_stat: group_stat[group_id] = (msg, False, 0) return last_msg, is_repeated, p = group_stat[group_id] if last_msg == msg: # 群友正在复读 if not is_repeated: # 机器人尚未复读过,开始测试复读 if random.random() < p: # 概率测试通过,复读并设flag try: group_stat[group_id] = (msg, True, 0) await bot.send(event, msg) except Exception as e: logger.error(f'复读失败: {type(e)}') else: # 概率测试失败,蓄力 p = 1 - (1 - p) / PROB_A group_stat[group_id] = (msg, False, p) else: # 不是复读,重置 group_stat[group_id] = (msg, False, 0)