mirror of
https://github.com/zebrajr/ArchiveBox.git
synced 2025-12-06 12:20:54 +01:00
Remove/detect empty media extractor directory
If the media extraction fails, try to remove an empty media directory, ignoring any errors. When retrying extractors (e.g. `--update`), detect an empty media directory and run the extractor; recovers from failed media extractions prior to this commit.
This commit is contained in:
parent
b773041952
commit
176de8b830
|
|
@ -26,7 +26,9 @@ def should_save_media(link: Link, out_dir: Optional[Path]=None, overwrite: Optio
|
||||||
return False
|
return False
|
||||||
|
|
||||||
out_dir = out_dir or Path(link.link_dir)
|
out_dir = out_dir or Path(link.link_dir)
|
||||||
if not overwrite and (out_dir / 'media').exists():
|
media_dir = out_dir / 'media'
|
||||||
|
media_dir_has_files = media_dir.exists() and any(media_dir.iterdir())
|
||||||
|
if not overwrite and media_dir_has_files:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
return SAVE_MEDIA
|
return SAVE_MEDIA
|
||||||
|
|
@ -66,6 +68,12 @@ def save_media(link: Link, out_dir: Optional[Path]=None, timeout: int=MEDIA_TIME
|
||||||
)
|
)
|
||||||
raise ArchiveError('Failed to save media', hints)
|
raise ArchiveError('Failed to save media', hints)
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
|
try:
|
||||||
|
# Try to remove an empty media directory,
|
||||||
|
# and ignore any failures
|
||||||
|
output_path.rmdir()
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
status = 'failed'
|
status = 'failed'
|
||||||
output = err
|
output = err
|
||||||
finally:
|
finally:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user