comictagger/comictaggerlib/md.py

40 lines
1.4 KiB
Python
Raw Permalink Normal View History

from __future__ import annotations
from datetime import datetime
from comicapi import utils
from comicapi.genericmetadata import GenericMetadata
from comictaggerlib import ctversion
from comictaggerlib.cbltransformer import CBLTransformer
from comictaggerlib.ctsettings.settngs_namespace import SettngsNS
from comictalker.talker_utils import cleanup_html
def prepare_metadata(md: GenericMetadata, new_md: GenericMetadata, config: SettngsNS) -> GenericMetadata:
if config.Metadata_Options__apply_transform_on_import:
new_md = CBLTransformer(new_md, config).apply()
final_md = md.copy()
if config.Auto_Tag__clear_tags:
final_md = GenericMetadata()
final_md.overlay(new_md, config.Metadata_Options__metadata_merge, config.Metadata_Options__metadata_merge_lists)
issue_id = ""
if final_md.issue_id:
issue_id = f" [Issue ID {final_md.issue_id}]"
origin = ""
if final_md.data_origin is not None:
origin = f" using info from {final_md.data_origin.name}"
notes = f"Tagged with ComicTagger {ctversion.version}{origin} on {datetime.now():%Y-%m-%d %H:%M:%S}.{issue_id}"
if config.Auto_Tag__auto_imprint:
2024-04-27 16:43:51 -07:00
final_md.fix_publisher()
2024-04-28 13:53:41 -07:00
2024-04-27 16:43:51 -07:00
return final_md.replace(
2024-04-28 13:53:41 -07:00
is_empty=False,
notes=utils.combine_notes(final_md.notes, notes, "Tagged with ComicTagger"),
description=cleanup_html(final_md.description, config.Metadata_Options__remove_html_tables) or None,
2024-04-27 16:43:51 -07:00
)