async def msg_event_deal(bot: Bot, event: Event, state: T_State): message_event_name = event.get_event_name() message_event_des = event.get_event_description() message = event.get_plaintext() await test_event_com.send(message_event_name) await test_event_com.send(message_event_des) await test_event_com.send(message) await test_event_com.finish('finish')
async def handle(bot: Bot, event: Event, state: T_State): # print(event.get_event_name().split(".")[1]) if not ENABLE_PRIVATE and event.get_event_name().split(".")[1] != "group": await twqd.send(Message(PRIVATE_PROMPT)) args = str(event.get_message()).strip() if args: state["stu_nums"] = args
async def handle(bot: Bot, event: Event, state: T_State): try: if not ENABLE_PRIVATE and event.get_event_name().split( ".")[1] != "group": await twqdall.send(Message(PRIVATE_PROMPT)) logger.debug(f'session id: {event.get_session_id()}') logger.debug(f'event description: {event.get_event_description()}') # event description: Message -639288931 from 729320011@[群:1001320858] "" group_id = str(event.dict()['group_id']) logger.debug(f'group id {group_id}') if SEND_LOG: await twqdall.send(Message(group_id)) # Get All User group_member_list = await bot.get_group_member_list(group_id=group_id) logger.debug(group_member_list) if SEND_LOG: await twqdall.send(Message(str(group_member_list))) # Map User db = pymysql.connect(host=QQMAP_HOST, port=3306, user=QQMAP_USERNAME, passwd=QQMAP_PASSWORD, db="cpds_db", charset='utf8') cursor = db.cursor() for member in group_member_list: user_id = str(member['user_id']) logger.debug(f'processing: {user_id}') at_ = "[CQ:at,qq={}]".format(user_id) if SEND_LOG: await twqdall.send(Message(at_ + TWQDALL_RUNNING_PROMPT)) stu_num = await qq2stunum(user_id, cursor) logger.debug(f'will process: {user_id} {stu_num}') if not stu_num: # await twqdall.send(Message(at_ + TWQDALL_NOT_IN_DATASET_PROMPT)) continue # await twqdall.send(Message(at_ + TWQDALL_RUNNING_PROMPT + f'{stu_num}')) await twqdall.send(Message(at_ + TWQDALL_RUNNING_PROMPT)) await tempReportEvent(at_, stu_num, twqdall) db.close() cursor.close() await twqdall.send(Message(TWQDALL_SUCCESS_PROMPT)) except Exception as e: msg = f"Exception: {Exception}\n" msg += f"str(e): {str(e)}\nrepr(e): {repr(e)}\n" msg += f"traceback.format_exc(): {traceback.format_exc()}" await exception_log(bot, msg)
async def deal_request_event(bot: Bot, event: Event): event_name = event.get_event_name() if event_name == 'request.friend': imfor = event.get_event_description().split("'") flag = imfor[-2].replace("'", "") await bot.set_friend_add_request(flag=flag, approve=False) elif event_name == 'request.group.invite': imfor = event.get_event_description().split("'") flag = imfor[-2].replace("'", "") sub_type = imfor[15].replace("'", "") await bot.set_group_add_request(flag=flag, sub_type=sub_type, approve=True) elif event_name == 'request.group.add': imfor = event.get_event_description().split("'") flag = imfor[-2].replace("'", "") sub_type = imfor[15].replace("'", "") await bot.set_group_add_request(flag=flag, sub_type=sub_type, approve=True) await request_event.finish()
async def _handle_init(bot: Bot, event: Event, state: T_State): await database.connect() user_status = await database.fetch_val(f"SELECT command_active FROM status WHERE session_id = {event.get_session_id()}") # 用户不存在 if user_status == None: await database.execute("INSERT INTO status (message_type, session_id, command_active) VALUES (:mgt,:sid,:cat)", {'mgt': str(event.get_event_name()), 'sid': int(event.get_session_id()), 'cat': 1}) await database.execute("INSERT INTO commands (session_id) VALUES (:sid)", {'sid': int(event.get_session_id())}) await bot.send(message='* 进入交互环境,输入 exit 退出', event=event) # 用户存在,判断状态 if user_status == 0: await database.execute(f"UPDATE status SET command_active = 1 WHERE session_id = {event.get_session_id()}") await bot.send(message='进入交互环境,输入 exit 退出', event=event) elif user_status == 1: await bot.send(message='已处于交互环境,输入 exit 退出', event=event) await database.disconnect()
async def checker(bot: Bot, event: Event, state: T_State): return event.get_event_name().find(notice_type) != -1