From 94fa825e67761a606035d78fc87e22573ccefc1a Mon Sep 17 00:00:00 2001 From: iou1name Date: Sun, 2 Jun 2019 20:10:00 -0400 Subject: [PATCH] post opens new request for each file --- overwrought_master.py | 20 ++++++++++++++++---- overwrought_server.py | 21 ++++++++++++--------- 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/overwrought_master.py b/overwrought_master.py index acc07a8..ea62d4b 100755 --- a/overwrought_master.py +++ b/overwrought_master.py @@ -251,22 +251,34 @@ def post_pack(): res.raise_for_status() mods_remote = res.json() mods = [mod for mod in mods if mod.filename not in mods_remote] - files = {} + for mod in mods: + files = {} files[mod.filename] = open(os.path.join('mods', mod.filename), 'rb') + res = requests.post( + url=config_master.remote_addr + '/post', + data=data, + files=files + ) + res.raise_for_status() + files[mod.filename].close() + print(f"{mod.filename} uploaded.") + + + files = {} + files['modpack.db'] = open('modpack.db', 'rb') files[config_master.modpack_name + '.html'] = open( config_master.modpack_name +'.html', 'rb') - res = requests.post( url=config_master.remote_addr + '/post', data=data, files=files ) res.raise_for_status() - for file in files.values(): file.close() - + print("modpack.db uploaded.") + print(f"{config_master.modpack_name}.html uploaded.") print('Success!') diff --git a/overwrought_server.py b/overwrought_server.py index 9222a1f..ad6b0f6 100755 --- a/overwrought_server.py +++ b/overwrought_server.py @@ -64,17 +64,20 @@ def post(): if not argon2.verify(password, config_server.pw_hash): abort(401) - db = request.files.get('database') - app.config.get('db_lock').acquire() - db.save('modpack.db') - app.config.get('db_lock').release() + files = request.files.to_dict() + if 'modpack.db' in files: + db = request.files.get('database') + app.config.get('db_lock').acquire() + db.save('modpack.db') + app.config.get('db_lock').release() + files.pop('modpack.db') - summary = request.files.get(config_server.modpack_name + '.html') - summary.save(config_server.modpack_name + '.html') + if config_server.modpack_name + '.html' in files: + summary = request.files.get(config_server.modpack_name + '.html') + summary.save(config_server.modpack_name + '.html') + files.pop(config_server.modpack_name + '.html') - for fname, file in request.files.items(): - if not fname.endswith('.jar'): - continue + for fname, file in files.items(): file.save(os.path.join(config_server.mods_dir, fname)) def generate_hash(password):