Example #1
0
async def add_member_first_receive(bot: cqhttp.Bot,
                                   event: cqhttp.PrivateMessageEvent,
                                   state: typing.T_State):
    raw_args = str(event.get_message()).strip()
    if raw_args:
        arg_list = raw_args.split(plugin_config.separator)
        state['info'] = arg_list
Example #2
0
async def update_member_handler(bot: cqhttp.Bot, event: cqhttp.PrivateMessageEvent, state: typing.T_State):
    #   Request valid confirmation for update
    while True:
        if str(event.get_message()).strip() not in InteractionMessage.CONFIRMATION_MESSAGE:
            await update_member.reject(InteractionMessage.INVALID_ARG)
        else:
            break

    user_confirm = str(event.get_message()).strip()
    if user_confirm.startswith(InteractionMessage.CONFIRMATION_MESSAGE[1]):
        #   Do not update
        await update_member.finish(message=InteractionMessage.RECORD_CHANGE_ABORT)
    else:
        new_info = {
            'member_id': str(state['new_info'][0]).strip(),
            'alias': str(state['new_info'][1]).strip(),
            'account': str(state['new_info'][2]).strip(),
            'password': str(state['new_info'][3]).strip()
        }
        update_result = await data_source.mc.update(new_info)

        if update_result['error'] is None:
            await update_member.finish(message=InteractionMessage.RECORD_CHANGE_SUCCESS)
        else:
            if bot.config.debug:
                await bot.send_private_msg(
                    user_id=plugin_config.AUTHOR,
                    message=update_result['func_info']
                )
                await bot.send_private_msg(
                    user_id=plugin_config.AUTHOR,
                    message=update_result['error']
                )
            await update_member.finish('\n'.join([
                InteractionMessage.RECORD_CHANGE_FAIL,
                InteractionMessage.ERROR_MESSAGE
            ]))
Example #3
0
async def add_member_parser(bot: cqhttp.Bot, event: cqhttp.PrivateMessageEvent, state: typing.T_State):
    state[state['_current_key']] = str(event.get_message()).strip().split(plugin_config.separator)