Fix purge: use full relative path for file deletion, clean empty dirs

- Bug: purge used Path(filename).name which stripped subdirectories,
  so files like 'jawed/Me at the zoo.webm' were never found/deleted
- Fix: use output_dir / filename (preserves relative path)
- Also: clean up empty parent directories after file deletion so
  uploader folders like 'jawed/' don't linger as empty dirs
This commit is contained in:
xpltd 2026-03-21 23:34:50 -05:00
parent 2e87da297f
commit 723e7f4248

View file

@ -74,12 +74,21 @@ async def run_purge(
# Delete file from disk if it exists
if filename:
file_path = output_dir / Path(filename).name
file_path = output_dir / filename
if file_path.is_file():
try:
file_path.unlink()
files_deleted += 1
logger.debug("Purge: deleted file %s (job %s)", file_path, job_id)
# Clean up empty parent directories up to output_dir
parent = file_path.parent
while parent != output_dir:
try:
parent.rmdir() # only removes if empty
logger.debug("Purge: removed empty dir %s", parent)
parent = parent.parent
except OSError:
break
except OSError as e:
logger.warning("Purge: failed to delete %s: %s", file_path, e)
else: