🚀 Auto-deploy: BrainKP atualizado em 25/07/2026 19:26:55

This commit is contained in:
2026-07-25 19:26:55 +00:00
parent 3495a63fd1
commit 2046f85d6b
+26 -8
View File
@@ -266,23 +266,41 @@ def cleanup_backups(backup_type):
grouped[key] = []
grouped[key].append(item)
deleted_count = 0
errors = []
import tempfile
import os
to_delete_paths = []
for key, group_items in grouped.items():
# Sort by ModTime descending (newest first)
group_items.sort(key=lambda x: x.get("ModTime", ""), reverse=True)
# Keep first 2
to_delete = group_items[2:]
for item in to_delete:
path = item.get("Path", item.get("Name"))
full_remote_path = f"{remote}/{path}"
cmd = ["rclone", "deletefile", full_remote_path, "--drive-root-folder-id", "1ey-5aABgHDtirxeJarWy0ZmeqQPVTYtm"]
result = subprocess.run(cmd, capture_output=True, text=True, timeout=60)
to_delete_paths.append(item.get("Path", item.get("Name")))
deleted_count = 0
errors = []
if to_delete_paths:
with tempfile.NamedTemporaryFile(mode='w', delete=False) as f:
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 += 1
deleted_count = len(to_delete_paths)
else:
errors.append(f"Failed to delete {path}: {result.stderr}")
errors.append(f"Failed to bulk delete: {result.stderr}")
# invalidate cache
global _stats_cache