🧑💻 improve code readability

This commit is contained in:
sakamoto
2024-08-09 17:57:50 -05:00
parent 978f13ebed
commit b50c75865d
2 changed files with 60 additions and 24 deletions
+58 -24
View File
@@ -10,23 +10,23 @@ import shutil
class Comic2PDF:
def __init__(self, src, dest, verbose=False, use_tempfile=False):
def __init__(self, src, dest, verbose=False, use_tempfile=True):
self.sort = Sorter()
self.use_tempfile = use_tempfile
self.src = src
self.dest = dest
self.dest_temp_dir = os.path.join(dest, "tmp")
self.define_temp = (
tempfile.TemporaryDirectory() if use_tempfile else self.dest_temp_dir
)
self.temp_dir = (
self.define_temp.name
if isinstance(self.define_temp, tempfile.TemporaryDirectory)
else self.define_temp
)
if use_tempfile:
self.define_temp = tempfile.TemporaryDirectory()
self.temp_dir = self.define_temp.name
else:
self.define_temp = self.dest_temp_dir
self.temp_dir = self.define_temp
os.makedirs(self.dest_temp_dir, exist_ok=True)
os.makedirs(self.dest, exist_ok=True)
os.makedirs(self.dest_temp_dir, exist_ok=True)
os.makedirs(self.temp_dir, exist_ok=True)
log.info(f"Source: {self.src}")
@@ -35,29 +35,52 @@ class Comic2PDF:
log.debug(f"Dest Temp Dir: {self.dest_temp_dir}")
def __del__(self):
delete_it = True
try:
if delete_it:
log.debug(f"Deleting: {self.dest_temp_dir}")
shutil.rmtree(self.dest_temp_dir)
except Exception as e:
log.error(e)
if isinstance(self.define_temp, tempfile.TemporaryDirectory):
log.debug(f"Deleting: {self.temp_dir}")
self.define_temp.cleanup()
else:
delete_it = True
try:
if delete_it and self.use_tempfile is False:
log.debug(f"Deleting: {self.dest_temp_dir}")
shutil.rmtree(self.dest_temp_dir)
else:
pass
except Exception as e:
log.error(e)
def run(self):
if os.path.isfile(self.src):
if os.path.isfile(self.src) and (
self.src.endswith(".cbz") or self.src.endswith(".cbr")
):
self.extract(self.src)
self.convert(self.src)
else:
elif os.path.isdir(self.src):
queue = 1
scanned_folder = self.scan(self.src)
log.debug(f"scanned folder: {scanned_folder}")
for root, dirs, files in os.walk(self.src):
for file in files:
log.info("="*30)
txt = f" [{queue}/{len(scanned_folder)}] Progress "
centered_txt = txt.center(45, "=")
log.info(centered_txt)
self.__del__()
os.makedirs(self.temp_dir)
os.makedirs(self.temp_dir, exist_ok=True)
log.debug(f"Created {self.temp_dir}")
self.extract(file)
self.convert(file)
self.convert(file, extract_to_folder=True)
queue += 1
log.info("=== ✅ Finished ===")
else:
log.error("Unknown file type.")
exit()
def scan(self, dir):
log.info(f"Scanning {dir}")
@@ -81,18 +104,29 @@ class Comic2PDF:
log.info("Extraction Complete")
def convert(self, file):
def convert(self, file, extract_to_folder=False):
log.info("Converting to pdf...")
imgs = []
imgs = self.scan(self.temp_dir)
basename = os.path.basename(file)
name = os.path.splitext(basename)[0]
pdf_path = os.path.join(self.dest, f"{name}.pdf")
if extract_to_folder:
folder_basename = os.path.basename(self.src)
folder = os.path.join(self.dest, f"{folder_basename}")
os.makedirs(folder, exist_ok=True)
pdf_path = os.path.join(folder, f"{name}.pdf")
else:
pdf_path = os.path.join(self.dest, f"{name}.pdf")
log.info(f"Path to conversion: {pdf_path}")
log.info(f"Extract to folder is set to {extract_to_folder}")
with open(pdf_path, "wb") as f:
f.write(img2pdf.convert(imgs))
log.info("Conversion complete")
if __name__ == "__main__":
comic2pdf = Comic2PDF(src, dest, verbose)
comic2pdf.run()
+2
View File
@@ -23,6 +23,8 @@ if verbose:
else:
logging.basicConfig(level=logging.INFO, format="[%(levelname)s] - %(message)s")
log = logging.getLogger()
logging.getLogger('img2pdf').setLevel(logging.CRITICAL)
logging.getLogger('patoolib').setLevel(logging.CRITICAL)
# got this from the internet
class Sorter: