Пример #1
0
def handle_commands():
    guild_id = request.args['g']
    commands = []

    for n in request.form:

        if n.startswith('command-'):
            commands.append(n.split('-')[-1])
    data = {c: True for c in commands}
    data_encoded = encode(key, json.dumps(data))
    request_data = {'data': data_encoded, 'guild': guild_id}
    if 'r' in request.args:
        request_data['role'] = request.args['r']
    if 'c' in request.args:
        request_data['channel'] = request.args['c']
    print(request_data)
    res = requests.post(
        f'{BOT_SITE}/submitcommands',
        data=request_data)
    print("GOT A RESPONSE", res)
    tab = 'commands'
    if 'c' in request.args:

        if 'r' in request.args:

            return redirect(f'/manage/{guild_id}?c={request.args["c"]}'
                            f'&r={request.args["r"]}&tab={tab}')
        return redirect(f'/manage/{guild_id}?c={request.args["c"]}&tab={tab}')

    if 'r' in request.args:
        return redirect(f'/manage/{guild_id}?r={request.args["r"]}&tab={tab}')

    return redirect(f'/manage/{guild_id}?tab={tab}')
Пример #2
0
def submit():

    if 'tab' in request.args:
        tab = request.args['tab']
        if tab == 'commands':
            is_perm = False
        else:
            is_perm = True
    else:
        is_perm = True
    # # print(is_perm, 'IS PERM', request.args)
    if not is_perm:
        form = CommandsForm(request.form)
        if form.validate():
            return handle_commands()

        return jsonify(form=request.form, args=request.args)
    data = {}
    for a in request.form:
        if a.startswith('perms-'):
            data[a.split('-')[-1]] = True
    json_data = json.dumps(data)
    data_encoded = encode(key, json_data)
    guild_id = request.args['g']
    if 'GUILD_ID' not in session:
        return 'Nice try'
    if session['GUILD_ID'] != guild_id:
        return 'Nice try'
    # print(data_encoded)
    request_data = {'data': data_encoded, 'guild': guild_id}
    if 'c' in request.args:
        request_data['channel'] = request.args['c']
    if 'r' in request.args:
        request_data['role'] = request.args['r']
    # print('posting')
    resp = requests.post(f'{BOT_SITE}/submitperms',
                         data=request_data,
                         headers={
                             'token': str(TOKEN),
                         })
    # print(resp)

    tab = 'perm'

    if 'c' in request.args:

        if 'r' in request.args:

            return redirect(f'/manage/{guild_id}?c={request.args["c"]}'
                            f'&r={request.args["r"]}&tab={tab}')
        return redirect(f'/manage/{guild_id}?c={request.args["c"]}&tab={tab}')

    if 'r' in request.args:
        return redirect(f'/manage/{guild_id}?r={request.args["r"]}&tab={tab}')

    return redirect(f'/manage/{guild_id}?tab={tab}')
Пример #3
0
async def read(src, l_eval=True, decrypt=True, read_from_cache=True):
    is_cached = cache.check_cache(src)
    if is_cached and read_from_cache:
        data = cache.read_cache(src)

        if isinstance(data, str):
            try:
                data = ast.literal_eval(data)
            except ValueError:
                pass
            except SyntaxError:
                pass
        return data

    if decrypt:
        try:
            data = decode(key, ((await main_collection.find_one(
                {"_id": src}))['data'].decode("utf-8")))
        except AttributeError:
            data = decode(key, (await main_collection.find_one({"_id":
                                                                src}))['data'])
        except TypeError:
            await main_collection.insert_one({
                "_id": src,
                "data": encode(key, str({}))
            })
            data = {}

        if l_eval:
            value = ast.literal_eval(str(data))

        else:
            value = str(data)

        cache.cache(src, value)
        return value

    else:

        try:

            data = (await main_collection.find_one({"_id": src}))['data']

        except TypeError:

            await main_collection.insert_one({"_id": src, "data": str({})})
            data = {}

        if l_eval:
            value = ast.literal_eval(data)

        else:
            value = str(data)

        cache.cache(src, value)
        return value
Пример #4
0
async def write(src, data, encrypt=True):
    cache.cache(src, data)
    if encrypt:
        data = encode(key, str(data))
        try:
            await main_collection.insert_one({"_id": src, "data": str(data)})
        except:
            await main_collection.update_one({"_id": src},
                                             {"$set": {
                                                 "data": str(data)
                                             }})
    else:
        try:
            await main_collection.insert_one({"_id": src, "data": str(data)})
        except:
            await main_collection.update_one({"_id": src},
                                             {"$set": {
                                                 "data": str(data)
                                             }})
Пример #5
0
async def write(src, value, encrypt=True):
	if encrypt:
		await client.store(src, encode(key, str(value)))
	else:
		await client.store(src, str(value))