|
11 | 11 |
|
12 | 12 | from perdoo import __version__, get_cache_root, setup_logging |
13 | 13 | from perdoo.cli import archive_app, settings_app |
14 | | -from perdoo.comic import SUPPORTED_IMAGE_EXTENSIONS, Comic, ComicArchiveError, ComicMetadataError |
| 14 | +from perdoo.comic import Comic |
| 15 | +from perdoo.comic.errors import ComicArchiveError, ComicMetadataError |
| 16 | +from perdoo.comic.metadata import ComicInfo, MetronInfo |
| 17 | +from perdoo.comic.metadata.comic_info import Page |
| 18 | +from perdoo.comic.metadata.metron_info import Id, InformationSource |
15 | 19 | from perdoo.console import CONSOLE |
16 | | -from perdoo.metadata import ComicInfo, MetronInfo |
17 | | -from perdoo.metadata.comic_info import Page |
18 | | -from perdoo.metadata.metron_info import Id, InformationSource |
19 | 20 | from perdoo.services import BaseService, Comicvine, Metron |
20 | 21 | from perdoo.settings import Service, Services, Settings |
21 | 22 | from perdoo.utils import ( |
@@ -74,7 +75,7 @@ def _load_comics(target: Path) -> list[Comic]: |
74 | 75 | files = list_files(target) if target.is_dir() else [target] |
75 | 76 | for file in files: |
76 | 77 | try: |
77 | | - comics.append(Comic(file=file)) |
| 78 | + comics.append(Comic(filepath=file)) |
78 | 79 | except (ComicArchiveError, ComicMetadataError) as err: # noqa: PERF203 |
79 | 80 | LOGGER.error("Failed to load '%s' as a Comic: %s", file, err) |
80 | 81 | return comics |
@@ -132,13 +133,12 @@ def get_search_details( |
132 | 133 | def load_page_info(entry: Comic, comic_info: ComicInfo) -> list[Page]: |
133 | 134 | from PIL import Image # noqa: PLC0415 |
134 | 135 |
|
135 | | - from perdoo.metadata.comic_info import PageType # noqa: PLC0415 |
| 136 | + from perdoo.comic import IMAGE_EXTENSIONS # noqa: PLC0415 |
| 137 | + from perdoo.comic.metadata.comic_info import PageType # noqa: PLC0415 |
136 | 138 |
|
137 | 139 | pages = set() |
138 | 140 | image_files = [ |
139 | | - x |
140 | | - for x in entry.archive.get_filename_list() |
141 | | - if Path(x).suffix.lower() in SUPPORTED_IMAGE_EXTENSIONS |
| 141 | + x for x in entry.archive.list_filenames() if Path(x).suffix.lower() in IMAGE_EXTENSIONS |
142 | 142 | ] |
143 | 143 | for idx, file in enumerate(image_files): |
144 | 144 | page = next((x for x in comic_info.pages if x.image == idx), None) |
@@ -169,7 +169,6 @@ def sync_metadata( |
169 | 169 | ) -> tuple[MetronInfo | None, ComicInfo | None]: |
170 | 170 | for service_name in settings.services.order: |
171 | 171 | if service := services.get(service_name): |
172 | | - LOGGER.info("Searching %s for matching issue", type(service).__name__) |
173 | 172 | metron_info, comic_info = service.fetch(search=search) |
174 | 173 | if metron_info or comic_info: |
175 | 174 | return metron_info, comic_info |
@@ -252,21 +251,19 @@ def run( |
252 | 251 | comics = _load_comics(target=target) |
253 | 252 | for index, entry in enumerate(comics): |
254 | 253 | CONSOLE.rule( |
255 | | - f"[{index + 1}/{len(comics)}] Importing {entry.path.name}", |
| 254 | + f"[{index + 1}/{len(comics)}] Importing {entry.filepath.name}", |
256 | 255 | align="left", |
257 | 256 | style="subtitle", |
258 | 257 | ) |
259 | 258 | if not skip_convert: |
260 | | - with CONSOLE.status( |
261 | | - f"Converting to '{settings.output.format}'", spinner="simpleDotsScrolling" |
262 | | - ): |
263 | | - entry.convert(extension=settings.output.format) |
| 259 | + with CONSOLE.status("Converting to '.cbz'", spinner="simpleDotsScrolling"): |
| 260 | + entry.convert_to(extension="cbz") |
264 | 261 |
|
265 | 262 | metadata: tuple[MetronInfo | None, ComicInfo | None] = (entry.metron_info, entry.comic_info) |
266 | 263 |
|
267 | 264 | if sync != SyncOption.SKIP: |
268 | | - search = get_search_details(metadata=metadata, filename=entry.path.stem) |
269 | | - search.filename = entry.path.stem |
| 265 | + search = get_search_details(metadata=metadata, filename=entry.filepath.stem) |
| 266 | + search.filename = entry.filepath.stem |
270 | 267 | last_modified = date(1900, 1, 1) |
271 | 268 | if sync == SyncOption.OUTDATED: |
272 | 269 | metron_info, _ = metadata |
|
0 commit comments