wrap file access into exception handler.

This commit is contained in:
ArabCoders 2025-01-17 23:44:27 +03:00
parent cd0118e961
commit fef60f0395

View file

@ -340,7 +340,11 @@ class Download:
self.info.filename = os.path.relpath(status.get("filename"), self.download_dir)
if os.path.exists(status.get("filename")):
self.info.file_size = os.path.getsize(status.get("filename"))
try:
self.info.file_size = os.path.getsize(status.get("filename"))
except FileNotFoundError:
self.info.file_size = 0
pass
self.info.status = status.get("status", self.info.status)
self.info.msg = status.get("msg")
@ -360,22 +364,16 @@ class Download:
self.info.speed = status.get("speed")
self.info.eta = status.get("eta")
if self.info.status == "finished" and "filename" in status:
if self.info.status == "finished" and "filename" in status and os.path.exists(status.get("filename")):
try:
self.info.file_size = os.path.getsize(status.get("filename"))
except FileNotFoundError:
LOG.warning(f'File not found: {status.get("filename")}')
self.info.file_size = None
pass
try:
ff = await ffprobe(status.get("filename"))
self.info.extras['is_video'] = ff.has_video()
self.info.extras['is_audio'] = ff.has_audio()
self.info.extras["is_video"] = ff.has_video()
self.info.extras["is_audio"] = ff.has_audio()
self.info.datetime = str(formatdate(time.time()))
except Exception as e:
self.info.extras['is_video'] = True
self.info.extras['is_audio'] = True
except (FileNotFoundError, Exception) as e:
self.info.extras["is_video"] = True
self.info.extras["is_audio"] = True
LOG.exception(f"Failed to ffprobe: {status.get('filename')}. {e}")
asyncio.create_task(self.emitter.updated(dl=self.info), name=f"emitter-u-{self.id}")