🚀 Auto-deploy: BrainKP atualizado em 25/07/2026 19:26:55
This commit is contained in:
@@ -266,23 +266,41 @@ def cleanup_backups(backup_type):
|
|||||||
grouped[key] = []
|
grouped[key] = []
|
||||||
grouped[key].append(item)
|
grouped[key].append(item)
|
||||||
|
|
||||||
deleted_count = 0
|
import tempfile
|
||||||
errors = []
|
import os
|
||||||
|
|
||||||
|
to_delete_paths = []
|
||||||
for key, group_items in grouped.items():
|
for key, group_items in grouped.items():
|
||||||
# Sort by ModTime descending (newest first)
|
# Sort by ModTime descending (newest first)
|
||||||
group_items.sort(key=lambda x: x.get("ModTime", ""), reverse=True)
|
group_items.sort(key=lambda x: x.get("ModTime", ""), reverse=True)
|
||||||
# Keep first 2
|
# Keep first 2
|
||||||
to_delete = group_items[2:]
|
to_delete = group_items[2:]
|
||||||
for item in to_delete:
|
for item in to_delete:
|
||||||
path = item.get("Path", item.get("Name"))
|
to_delete_paths.append(item.get("Path", item.get("Name")))
|
||||||
full_remote_path = f"{remote}/{path}"
|
|
||||||
cmd = ["rclone", "deletefile", full_remote_path, "--drive-root-folder-id", "1ey-5aABgHDtirxeJarWy0ZmeqQPVTYtm"]
|
deleted_count = 0
|
||||||
result = subprocess.run(cmd, capture_output=True, text=True, timeout=60)
|
errors = []
|
||||||
if result.returncode == 0:
|
|
||||||
deleted_count += 1
|
if to_delete_paths:
|
||||||
else:
|
with tempfile.NamedTemporaryFile(mode='w', delete=False) as f:
|
||||||
errors.append(f"Failed to delete {path}: {result.stderr}")
|
for p in to_delete_paths:
|
||||||
|
f.write(p + '\n')
|
||||||
|
list_file = f.name
|
||||||
|
|
||||||
|
cmd = [
|
||||||
|
"rclone", "delete", remote,
|
||||||
|
"--files-from", list_file,
|
||||||
|
"--drive-root-folder-id", "1ey-5aABgHDtirxeJarWy0ZmeqQPVTYtm",
|
||||||
|
"--drive-use-trash=false" # permanently delete to immediately free space
|
||||||
|
]
|
||||||
|
|
||||||
|
result = subprocess.run(cmd, capture_output=True, text=True, timeout=300)
|
||||||
|
os.remove(list_file)
|
||||||
|
|
||||||
|
if result.returncode == 0:
|
||||||
|
deleted_count = len(to_delete_paths)
|
||||||
|
else:
|
||||||
|
errors.append(f"Failed to bulk delete: {result.stderr}")
|
||||||
|
|
||||||
# invalidate cache
|
# invalidate cache
|
||||||
global _stats_cache
|
global _stats_cache
|
||||||
|
|||||||
Reference in New Issue
Block a user