Improve rar error messages
This commit is contained in:
parent
5688cdea89
commit
b6d5fe7013
@ -64,18 +64,25 @@ class RarArchiver(Archiver):
|
||||
f"-z{tmp_file}",
|
||||
str(self.path),
|
||||
]
|
||||
subprocess.run(
|
||||
result = subprocess.run(
|
||||
proc_args,
|
||||
startupinfo=self.startupinfo,
|
||||
stdout=subprocess.DEVNULL,
|
||||
stdin=subprocess.DEVNULL,
|
||||
stderr=subprocess.DEVNULL,
|
||||
check=True,
|
||||
capture_output=True,
|
||||
encoding="utf-8",
|
||||
)
|
||||
if result.returncode != 0:
|
||||
logger.error(
|
||||
"Error writing comment to rar archive [exitcode: %d]: %s :: %s",
|
||||
result.returncode,
|
||||
self.path,
|
||||
result.stderr,
|
||||
)
|
||||
return False
|
||||
|
||||
if platform.system() == "Darwin":
|
||||
time.sleep(1)
|
||||
except (subprocess.CalledProcessError, OSError) as e:
|
||||
except OSError as e:
|
||||
logger.exception("Error writing comment to rar archive [%s]: %s", e, self.path)
|
||||
return False
|
||||
else:
|
||||
@ -134,9 +141,9 @@ class RarArchiver(Archiver):
|
||||
result = subprocess.run(
|
||||
[self.exe, "d", "-c-", self.path, archive_file],
|
||||
startupinfo=self.startupinfo,
|
||||
stdout=subprocess.DEVNULL,
|
||||
stdin=subprocess.DEVNULL,
|
||||
stderr=subprocess.DEVNULL,
|
||||
capture_output=True,
|
||||
encoding="utf-8",
|
||||
)
|
||||
|
||||
if platform.system() == "Darwin":
|
||||
@ -164,15 +171,18 @@ class RarArchiver(Archiver):
|
||||
[self.exe, "a", f"-si{archive_name}", f"-ap{archive_parent}", "-c-", "-ep", self.path],
|
||||
input=data,
|
||||
startupinfo=self.startupinfo,
|
||||
stdout=subprocess.DEVNULL,
|
||||
stderr=subprocess.DEVNULL,
|
||||
capture_output=True,
|
||||
)
|
||||
|
||||
if platform.system() == "Darwin":
|
||||
time.sleep(1)
|
||||
if result.returncode != 0:
|
||||
logger.error(
|
||||
"Error writing rar archive [exitcode: %d]: %s :: %s", result.returncode, self.path, archive_file
|
||||
"Error writing rar archive [exitcode: %d]: %s :: %s :: %s",
|
||||
result.returncode,
|
||||
self.path,
|
||||
archive_file,
|
||||
result.stderr,
|
||||
)
|
||||
return False
|
||||
else:
|
||||
@ -219,12 +229,17 @@ class RarArchiver(Archiver):
|
||||
[self.exe, "a", "-r", "-c-", str(rar_path.absolute()), "."],
|
||||
cwd=rar_cwd.absolute(),
|
||||
startupinfo=self.startupinfo,
|
||||
stdout=subprocess.DEVNULL,
|
||||
stdin=subprocess.DEVNULL,
|
||||
stderr=subprocess.DEVNULL,
|
||||
capture_output=True,
|
||||
encoding="utf-8",
|
||||
)
|
||||
if result.returncode != 0:
|
||||
logger.error("Error while copying to rar archive [exitcode: %d]: %s", result.returncode, self.path)
|
||||
logger.error(
|
||||
"Error while copying to rar archive [exitcode: %d]: %s: %s",
|
||||
result.returncode,
|
||||
self.path,
|
||||
result.stderr,
|
||||
)
|
||||
return False
|
||||
|
||||
self.path.unlink(missing_ok=True)
|
||||
|
@ -20,6 +20,7 @@ import os
|
||||
import pathlib
|
||||
import shutil
|
||||
import sys
|
||||
import traceback
|
||||
from typing import cast
|
||||
|
||||
from comicapi import filenamelexer, filenameparser, utils
|
||||
@ -194,8 +195,11 @@ class ComicArchive:
|
||||
if filename:
|
||||
try:
|
||||
image_data = self.archiver.read_file(filename) or b""
|
||||
except Exception:
|
||||
logger.error("Error reading in page %d. Substituting logo page.", index)
|
||||
except Exception as e:
|
||||
tb = traceback.extract_tb(e.__traceback__)
|
||||
logger.error(
|
||||
"%s:%s: Error reading in page %d. Substituting logo page.", tb[1].filename, tb[1].lineno, index
|
||||
)
|
||||
image_data = ComicArchive.logo_data
|
||||
|
||||
return image_data
|
||||
@ -325,7 +329,8 @@ class ComicArchive:
|
||||
self.reset_cache()
|
||||
return write_success
|
||||
except Exception as e:
|
||||
logger.error("Error saving CBI! for %s: %s", self.path, e)
|
||||
tb = traceback.extract_tb(e.__traceback__)
|
||||
logger.error("%s:%s: Error saving CBI! for %s: %s", tb[1].filename, tb[1].lineno, self.path, e)
|
||||
|
||||
return False
|
||||
|
||||
@ -365,7 +370,8 @@ class ComicArchive:
|
||||
try:
|
||||
raw_cix = self.archiver.read_file(self.ci_xml_filename) or b""
|
||||
except Exception as e:
|
||||
logger.error("Error reading in raw CIX! for %s: %s", self.path, e)
|
||||
tb = traceback.extract_tb(e.__traceback__)
|
||||
logger.error("%s:%s: Error reading in raw CIX! for %s: %s", tb[1].filename, tb[1].lineno, self.path, e)
|
||||
raw_cix = b""
|
||||
return raw_cix
|
||||
|
||||
@ -382,7 +388,8 @@ class ComicArchive:
|
||||
self.reset_cache()
|
||||
return write_success
|
||||
except Exception as e:
|
||||
logger.error("Error saving CIX! for %s: %s", self.path, e)
|
||||
tb = traceback.extract_tb(e.__traceback__)
|
||||
logger.error("%s:%s: Error saving CIX! for %s: %s", tb[1].filename, tb[1].lineno, self.path, e)
|
||||
|
||||
return False
|
||||
|
||||
@ -440,7 +447,10 @@ class ComicArchive:
|
||||
if raw_bytes:
|
||||
raw_comet = raw_bytes.decode("utf-8")
|
||||
except OSError as e:
|
||||
logger.exception("Error reading in raw CoMet!: %s", e)
|
||||
tb = traceback.extract_tb(e.__traceback__)
|
||||
logger.error(
|
||||
"%s:%s: Error reading in raw CoMet! for %s: %s", tb[1].filename, tb[1].lineno, self.path, e
|
||||
)
|
||||
return raw_comet
|
||||
|
||||
def write_comet(self, metadata: GenericMetadata) -> bool:
|
||||
@ -490,7 +500,14 @@ class ComicArchive:
|
||||
if d:
|
||||
data = d.decode("utf-8")
|
||||
except Exception as e:
|
||||
logger.warning("Error reading in Comet XML for validation! from %s: %s", self.path, e)
|
||||
tb = traceback.extract_tb(e.__traceback__)
|
||||
logger.warning(
|
||||
"%s:%s: Error reading in Comet XML for validation! from %s: %s",
|
||||
tb[1].filename,
|
||||
tb[1].lineno,
|
||||
self.path,
|
||||
e,
|
||||
)
|
||||
if CoMet().validate_string(data):
|
||||
# since we found it, save it!
|
||||
self.comet_filename = n
|
||||
|
Loading…
Reference in New Issue
Block a user