feat: Allow deletion of music files to be disabled in the config file. Implement #202.

This commit is contained in:
Terry Geng
2020-10-24 22:13:20 +08:00
parent a1e37629a5
commit 312599e8b3
4 changed files with 29 additions and 14 deletions

View File

@@ -562,6 +562,7 @@ def library_info():
return jsonify(dict(
dirs=get_all_dirs(),
upload_enabled=var.config.getboolean("webinterface", "upload_enabled", fallback=True),
delete_allowed=var.config.getboolean("webinterface", "delete_allowed", fallback=True),
tags=tags,
max_upload_file_size=max_upload_file_size
))
@@ -605,22 +606,25 @@ def library():
return redirect("./", code=302)
elif request.form['action'] == 'delete':
items = dicts_to_items(var.music_db.query_music(condition))
for item in items:
var.playlist.remove_by_id(item.id)
item = var.cache.get_item_by_id(item.id)
if var.config.getboolean("webinterface", "delete_allowed", fallback=True):
items = dicts_to_items(var.music_db.query_music(condition))
for item in items:
var.playlist.remove_by_id(item.id)
item = var.cache.get_item_by_id(item.id)
if os.path.isfile(item.uri()):
log.info("web: delete file " + item.uri())
os.remove(item.uri())
if os.path.isfile(item.uri()):
log.info("web: delete file " + item.uri())
os.remove(item.uri())
var.cache.free_and_delete(item.id)
var.cache.free_and_delete(item.id)
if len(os.listdir(var.music_folder + request.form['dir'])) == 0:
os.rmdir(var.music_folder + request.form['dir'])
if len(os.listdir(var.music_folder + request.form['dir'])) == 0:
os.rmdir(var.music_folder + request.form['dir'])
time.sleep(0.1)
return redirect("./", code=302)
time.sleep(0.1)
return redirect("./", code=302)
else:
abort(403)
else:
page_count = math.ceil(total_count / ITEM_PER_PAGE)