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}')
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}')
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
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) }})
async def write(src, value, encrypt=True): if encrypt: await client.store(src, encode(key, str(value))) else: await client.store(src, str(value))