Пример #1
0
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')
Пример #2
0
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
Пример #3
0
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)
Пример #4
0
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()
Пример #5
0
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()
Пример #6
0
 async def checker(bot: Bot, event: Event, state: T_State):
     return event.get_event_name().find(notice_type) != -1