Skip to content

Commit

Permalink
If CI has 4 digit volume assume it's the start year (#136)
Browse files Browse the repository at this point in the history
  • Loading branch information
bpepple authored Nov 29, 2024
1 parent 0d23b46 commit 99797e9
Showing 1 changed file with 15 additions and 18 deletions.
33 changes: 15 additions & 18 deletions darkseid/metroninfo.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
from darkseid.utils import cast_id_as_str

EARLIEST_YEAR = 1900
ONE_THOUSAND = 1000


class MetronInfo:
Expand Down Expand Up @@ -330,47 +331,43 @@ def _assign_publisher(root: ET.Element, publisher: Publisher) -> None:
imprint_node.text = publisher.imprint.name

@classmethod
def _assign_series(cls, root: ET.Element, series: Series) -> None: # NOQA: C901
def _assign_series(cls, root: ET.Element, series: Series) -> None: # NOQA: PLR0912, C901
if series is None:
return
series_node = MetronInfo._get_or_create_element(root, "Series")
if series.id_ or series.language:
series_node.attrib = {
k: v
for k, v in (
("id", cast_id_as_str(series.id_)),
("lang", series.language),
)
if v
}
series_node.attrib = {}
if series.id_:
series_node.attrib["id"] = cast_id_as_str(series.id_)
if series.language:
series_node.attrib["lang"] = series.language

create_sub_element = ET.SubElement

create_sub_element(series_node, "Name").text = series.name
if series.sort_name is not None:
create_sub_element(series_node, "SortName").text = series.sort_name
if series.volume is not None:
if series.volume is not None and series.volume < ONE_THOUSAND:
create_sub_element(series_node, "Volume").text = str(series.volume)
series_fmt = cls._valid_series_format(series.format)
if series_fmt is not None:
create_sub_element(series_node, "Format").text = series_fmt
if series.start_year:
create_sub_element(series_node, "StartYear").text = str(series.start_year)
elif series.volume is not None and series.volume >= ONE_THOUSAND:
create_sub_element(series_node, "StartYear").text = str(series.volume)
if series.issue_count:
create_sub_element(series_node, "IssueCount").text = str(series.issue_count)
if series.volume_count:
create_sub_element(series_node, "VolumeCount").text = str(series.volume_count)
if series.alternative_names:
alt_names_node = create_sub_element(series_node, "AlternativeNames")
for alt_name in series.alternative_names:
alt_attrib = {
k: v
for k, v in (
("id", cast_id_as_str(alt_name.id_)),
("lang", alt_name.language),
)
if v
}
alt_attrib = {}
if alt_name.id_:
alt_attrib["id"] = cast_id_as_str(alt_name.id_)
if alt_name.language:
alt_attrib["lang"] = alt_name.language
create_sub_element(alt_names_node, "Name", attrib=alt_attrib).text = alt_name.name

@staticmethod
Expand Down

0 comments on commit 99797e9

Please sign in to comment.