示例#1
0
def command_checkalias(**options):
    if "alias" not in request.form:
        return make_response(jsonify({"error": "Missing `alias` parameter."}), 400)

    request_alias = request.form["alias"].lower()

    command_manager = CommandManager(socket_manager=None, module_manager=ModuleManager(None).load(), bot=None).load(
        enabled=None
    )

    command_aliases = []

    for alias, command in command_manager.items():
        command_aliases.append(alias)
        if command.command and len(command.command) > 0:
            command_aliases.extend(command.command.split("|"))

    command_aliases = set(command_aliases)

    if request_alias in command_aliases:
        return make_response(jsonify({"error": "Alias already in use"}))
    else:
        return make_response(jsonify({"success": "good job"}))
示例#2
0
    def post(self, **extra_args):
        args = pajbot.utils.remove_none_values(self.post_parser.parse_args())

        request_alias = args['alias'].lower()

        command_manager = CommandManager(
                socket_manager=None,
                module_manager=ModuleManager(None).load(),
                bot=None).load(enabled=None)

        command_aliases = []

        for alias, command in command_manager.items():
            command_aliases.append(alias)
            if command.command and len(command.command) > 0:
                command_aliases.extend(command.command.split('|'))

        command_aliases = set(command_aliases)

        if request_alias in command_aliases:
            return {'error': 'Alias already in use'}
        else:
            return {'success': 'good job'}
示例#3
0
def command_checkalias(**options):
    if 'alias' not in request.form:
        return make_response(jsonify({'error': 'Missing `alias` parameter.'}), 400)

    request_alias = request.form['alias'].lower()

    command_manager = CommandManager(
            socket_manager=None,
            module_manager=ModuleManager(None).load(),
            bot=None).load(enabled=None)

    command_aliases = []

    for alias, command in command_manager.items():
        command_aliases.append(alias)
        if command.command and len(command.command) > 0:
            command_aliases.extend(command.command.split('|'))

    command_aliases = set(command_aliases)

    if request_alias in command_aliases:
        return make_response(jsonify({'error': 'Alias already in use'}))
    else:
        return make_response(jsonify({'success': 'good job'}))
示例#4
0
文件: api.py 项目: cubelious/pajbot
def command_checkalias(**options):
    if 'alias' not in request.form:
        return make_response(jsonify({'error': 'Missing `alias` parameter.'}), 400)

    request_alias = request.form['alias'].lower()

    command_manager = CommandManager(
            socket_manager=None,
            module_manager=ModuleManager(None).load(),
            bot=None).load(enabled=None)

    command_aliases = []

    for alias, command in command_manager.items():
        command_aliases.append(alias)
        if command.command and len(command.command) > 0:
            command_aliases.extend(command.command.split('|'))

    command_aliases = set(command_aliases)

    if request_alias in command_aliases:
        return make_response(jsonify({'error': 'Alias already in use'}))
    else:
        return make_response(jsonify({'success': 'good job'}))
示例#5
0
def commands_create(**options):
    session.pop('command_created_id', None)
    session.pop('command_edited_id', None)
    if request.method == 'POST':
        if 'aliases' not in request.form:
            abort(403)
        alias_str = request.form.get('aliases', '').replace('!', '').lower()
        delay_all = request.form.get('cd', Command.DEFAULT_CD_ALL)
        delay_user = request.form.get('usercd', Command.DEFAULT_CD_USER)
        level = request.form.get('level', Command.DEFAULT_LEVEL)
        cost = request.form.get('cost', 0)

        try:
            delay_all = int(delay_all)
            delay_user = int(delay_user)
            level = int(level)
            cost = int(cost)
        except ValueError:
            abort(403)

        if len(alias_str) == 0:
            abort(403)
        if delay_all < 0 or delay_all > 9999:
            abort(403)
        if delay_user < 0 or delay_user > 9999:
            abort(403)
        if level < 0 or level > 2000:
            abort(403)
        if cost < 0 or cost > 9999999:
            abort(403)

        options = {
                'delay_all': delay_all,
                'delay_user': delay_user,
                'level': level,
                'cost': cost,
                }

        valid_action_types = ['say', 'me', 'whisper', 'reply']
        action_type = request.form.get('reply', 'say').lower()
        if action_type not in valid_action_types:
            abort(403)

        response = request.form.get('response', '')
        if len(response) == 0:
            abort(403)

        action = {
                'type': action_type,
                'message': response
                }
        options['action'] = action

        command_manager = CommandManager(
                socket_manager=None,
                module_manager=ModuleManager(None).load(),
                bot=None).load(enabled=None)

        command_aliases = []

        for alias, command in command_manager.items():
            command_aliases.append(alias)
            if command.command and len(command.command) > 0:
                command_aliases.extend(command.command.split('|'))

        command_aliases = set(command_aliases)

        alias_str = alias_str.replace(' ', '').replace('!', '').lower()
        alias_list = alias_str.split('|')

        alias_list = [alias for alias in alias_list if len(alias) > 0]

        if len(alias_list) == 0:
            return render_template('admin/create_command_fail.html')

        for alias in alias_list:
            if alias in command_aliases:
                return render_template('admin/create_command_fail.html')

        alias_str = '|'.join(alias_list)

        command = Command(command=alias_str, **options)
        command.data = CommandData(command.id)
        with DBManager.create_session_scope(expire_on_commit=False) as db_session:
            db_session.add(command)
            db_session.add(command.data)
            db_session.commit()
            db_session.expunge(command)
            db_session.expunge(command.data)

        SocketClientManager.send('command.update', {'command_id': command.id})
        session['command_created_id'] = command.id
        return redirect('/admin/commands/', 303)
    else:
        return render_template('admin/create_command.html')
示例#6
0
def commands_create(**options):
    session.pop('command_created_id', None)
    session.pop('command_edited_id', None)
    if request.method == 'POST':
        if 'aliases' not in request.form:
            abort(403)
        alias_str = request.form.get('aliases', '').replace('!', '').lower()
        delay_all = request.form.get('cd', Command.DEFAULT_CD_ALL)
        delay_user = request.form.get('usercd', Command.DEFAULT_CD_USER)
        level = request.form.get('level', Command.DEFAULT_LEVEL)
        cost = request.form.get('cost', 0)

        try:
            delay_all = int(delay_all)
            delay_user = int(delay_user)
            level = int(level)
            cost = int(cost)
        except ValueError:
            abort(403)

        if len(alias_str) == 0:
            abort(403)
        if delay_all < 0 or delay_all > 9999:
            abort(403)
        if delay_user < 0 or delay_user > 9999:
            abort(403)
        if level < 0 or level > 2000:
            abort(403)
        if cost < 0 or cost > 9999999:
            abort(403)

        options = {
            'delay_all': delay_all,
            'delay_user': delay_user,
            'level': level,
            'cost': cost,
        }

        valid_action_types = ['say', 'me', 'whisper', 'reply']
        action_type = request.form.get('reply', 'say').lower()
        if action_type not in valid_action_types:
            abort(403)

        response = request.form.get('response', '')
        if len(response) == 0:
            abort(403)

        action = {'type': action_type, 'message': response}
        options['action'] = action

        command_manager = CommandManager(
            socket_manager=None,
            module_manager=ModuleManager(None).load(),
            bot=None).load(enabled=None)

        command_aliases = []

        for alias, command in command_manager.items():
            command_aliases.append(alias)
            if command.command and len(command.command) > 0:
                command_aliases.extend(command.command.split('|'))

        command_aliases = set(command_aliases)

        alias_str = alias_str.replace(' ', '').replace('!', '').lower()
        alias_list = alias_str.split('|')

        alias_list = [alias for alias in alias_list if len(alias) > 0]

        if len(alias_list) == 0:
            return render_template('admin/create_command_fail.html')

        for alias in alias_list:
            if alias in command_aliases:
                return render_template('admin/create_command_fail.html')

        alias_str = '|'.join(alias_list)

        command = Command(command=alias_str, **options)
        command.data = CommandData(command.id)
        with DBManager.create_session_scope(
                expire_on_commit=False) as db_session:
            db_session.add(command)
            db_session.add(command.data)
            db_session.commit()
            db_session.expunge(command)
            db_session.expunge(command.data)

        SocketClientManager.send('command.update', {'command_id': command.id})
        session['command_created_id'] = command.id
        return redirect('/admin/commands/', 303)
    else:
        return render_template('admin/create_command.html')