diff --git a/comictaggerlib/cli.py b/comictaggerlib/cli.py index 3d86109..b88134b 100644 --- a/comictaggerlib/cli.py +++ b/comictaggerlib/cli.py @@ -31,7 +31,7 @@ from comictaggerlib.cbltransformer import CBLTransformer from comictaggerlib.filerenamer import FileRenamer, get_rename_dir from comictaggerlib.graphics import graphics_path from comictaggerlib.issueidentifier import IssueIdentifier -from comictaggerlib.resulttypes import MultipleMatch, OnlineMatchResults +from comictaggerlib.resulttypes import IssueResult, MultipleMatch, OnlineMatchResults from comictaggerlib.settings import ComicTaggerSettings from comictalker.talkerbase import ComicTalker, TalkerError @@ -39,11 +39,11 @@ logger = logging.getLogger(__name__) def actual_issue_data_fetch( - issue_id: int, settings: ComicTaggerSettings, opts: argparse.Namespace, talker_api: ComicTalker + match: IssueResult, settings: ComicTaggerSettings, opts: argparse.Namespace, talker_api: ComicTalker ) -> GenericMetadata: # now get the particular issue data try: - ct_md = talker_api.fetch_comic_data(issue_id) + ct_md = talker_api.fetch_comic_data(match["issue_id"], match["volume_id"], match["issue_number"]) except TalkerError as e: logger.exception(f"Error retrieving issue details. Save aborted.\n{e}") return GenericMetadata() @@ -110,7 +110,7 @@ def display_match_set_for_choice( # we know at this point, that the file is all good to go ca = match_set.ca md = create_local_metadata(opts, ca, settings) - ct_md = actual_issue_data_fetch(match_set.matches[int(i) - 1]["issue_id"], settings, opts, talker_api) + ct_md = actual_issue_data_fetch(match_set.matches[int(i) - 1], settings, opts, talker_api) if opts.overwrite: md = ct_md else: @@ -456,7 +456,7 @@ def process_file_cli( # we got here, so we have a single match # now get the particular issue data - ct_md = actual_issue_data_fetch(matches[0]["issue_id"], settings, opts, talker_api) + ct_md = actual_issue_data_fetch(matches[0], settings, opts, talker_api) if ct_md.is_empty: match_results.fetch_data_failures.append(str(ca.path.absolute())) return diff --git a/comictaggerlib/taggerwindow.py b/comictaggerlib/taggerwindow.py index dcd9d22..7f13881 100644 --- a/comictaggerlib/taggerwindow.py +++ b/comictaggerlib/taggerwindow.py @@ -1075,16 +1075,9 @@ Have fun! self.form_to_metadata() try: - if selector.issue_id: - new_metadata = self.talker_api.fetch_comic_data(selector.issue_id) - elif selector.volume_id and selector.issue_number: - # Would this ever be needed? - new_metadata = self.talker_api.fetch_comic_data( - series_id=selector.volume_id, issue_number=selector.issue_number - ) - else: - # Only left with series? Isn't series only handled elsewhere? - new_metadata = self.talker_api.fetch_comic_data(series_id=selector.volume_id) + new_metadata = self.talker_api.fetch_comic_data( + selector.issue_id, selector.volume_id, selector.issue_number + ) except TalkerError as e: QtWidgets.QApplication.restoreOverrideCursor() QtWidgets.QMessageBox.critical( @@ -1684,7 +1677,7 @@ Have fun! QtWidgets.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.CursorShape.WaitCursor)) try: - ct_md = self.talker_api.fetch_comic_data(match["issue_id"]) + ct_md = self.talker_api.fetch_comic_data(match["issue_id"], match["volume_id"], match["issue_number"]) except TalkerError as e: logger.exception(f"Save aborted.\n{e}") diff --git a/comictalker/talkers/comicvine.py b/comictalker/talkers/comicvine.py index 35aa3ec..2494025 100644 --- a/comictalker/talkers/comicvine.py +++ b/comictalker/talkers/comicvine.py @@ -578,10 +578,10 @@ class ComicVineTalker(ComicTalker): def fetch_comic_data(self, issue_id: int = 0, series_id: int = 0, issue_number: str = "") -> GenericMetadata: comic_data = GenericMetadata() # TODO remove has_issues check? Enables testing. Possibly add source option to only get volume info? - if self.static_options.has_issues and issue_number and series_id: - comic_data = self.fetch_issue_data(series_id, issue_number) - elif issue_id: + if issue_id: comic_data = self.fetch_issue_data_by_issue_id(issue_id) + elif self.static_options.has_issues and issue_number and series_id: + comic_data = self.fetch_issue_data(series_id, issue_number) else: # Only retrieve the volume data comic_data = self.fetch_volume_data(series_id)