Fix serializing of sets

This commit is contained in:
Timmy Welch 2022-07-25 11:22:44 -07:00
parent 28cbbbece7
commit 5a19eaf9a0
5 changed files with 85 additions and 22 deletions

View File

@ -144,27 +144,21 @@ class CoMet:
md.series = utils.xlate(get("series"))
md.title = utils.xlate(get("title"))
md.issue = utils.xlate(get("issue"))
md.volume = utils.xlate(get("volume"))
md.volume = utils.xlate(get("volume"), True)
md.comments = utils.xlate(get("description"))
md.publisher = utils.xlate(get("publisher"))
md.language = utils.xlate(get("language"))
md.format = utils.xlate(get("format"))
md.page_count = utils.xlate(get("pages"))
md.page_count = utils.xlate(get("pages"), True)
md.maturity_rating = utils.xlate(get("rating"))
md.price = utils.xlate(get("price"))
md.price = utils.xlate(get("price"), is_float=True)
md.is_version_of = utils.xlate(get("isVersionOf"))
md.rights = utils.xlate(get("rights"))
md.identifier = utils.xlate(get("identifier"))
md.last_mark = utils.xlate(get("lastMark"))
md.genre = utils.xlate(get("genre")) # TODO - repeatable field
date = utils.xlate(get("date"))
if date is not None:
parts = date.split("-")
if len(parts) > 0:
md.year = parts[0]
if len(parts) > 1:
md.month = parts[1]
_, md.month, md.year = utils.parse_date_str(utils.xlate(get("date")))
md.cover_image = utils.xlate(get("coverImage"))

View File

@ -157,7 +157,7 @@ class ComicBookInfo:
assign("country", utils.xlate(metadata.country))
assign("rating", utils.xlate(metadata.critical_rating, True))
assign("credits", metadata.credits)
assign("tags", metadata.tags)
assign("tags", list(metadata.tags))
return cbi_container

View File

@ -35,6 +35,20 @@ class UtilsVars:
already_fixed_encoding = False
def parse_date_str(date_str: str) -> tuple[int | None, int | None, int | None]:
day = None
month = None
year = None
if date_str:
parts = date_str.split("-")
year = xlate(parts[0], True)
if len(parts) > 1:
month = xlate(parts[1], True)
if len(parts) > 2:
day = xlate(parts[2], True)
return day, month, year
def get_recursive_filelist(pathlist: list[str]) -> list[str]:
"""Get a recursive list of of all files under all path items in the list"""

View File

@ -121,17 +121,7 @@ class ComicVineTalker:
self.log_func(text)
def parse_date_str(self, date_str: str) -> tuple[int | None, int | None, int | None]:
day = None
month = None
year = None
if date_str:
parts = date_str.split("-")
year = utils.xlate(parts[0], True)
if len(parts) > 1:
month = utils.xlate(parts[1], True)
if len(parts) > 2:
day = utils.xlate(parts[2], True)
return day, month, year
return utils.parse_date_str(date_str)
def test_key(self, key: str, url: str) -> bool:
if not url:

65
tests/metadata_test.py Normal file
View File

@ -0,0 +1,65 @@
from __future__ import annotations
import comicapi.comicbookinfo
import comicapi.comicinfoxml
import comicapi.genericmetadata
def test_cix():
CIX = comicapi.comicinfoxml.ComicInfoXml()
string = CIX.string_from_metadata(comicapi.genericmetadata.md_test)
md = CIX.metadata_from_string(string)
assert md == comicapi.genericmetadata.md_test
def test_cbi():
CBI = comicapi.comicbookinfo.ComicBookInfo()
string = CBI.string_from_metadata(comicapi.genericmetadata.md_test)
md = CBI.metadata_from_string(string)
md_test = comicapi.genericmetadata.md_test.replace(
day=None,
language="English",
page_count=None,
maturity_rating=None,
story_arc=None,
series_group=None,
scan_info=None,
characters=None,
teams=None,
locations=None,
pages=[],
alternate_series=None,
alternate_number=None,
alternate_count=None,
imprint=None,
notes=None,
web_link=None,
format=None,
manga=None,
)
assert md == md_test
def test_comet():
CBI = comicapi.comet.CoMet()
string = CBI.string_from_metadata(comicapi.genericmetadata.md_test)
md = CBI.metadata_from_string(string)
md_test = comicapi.genericmetadata.md_test.replace(
day=None,
story_arc=None,
series_group=None,
scan_info=None,
teams=None,
locations=None,
pages=[],
alternate_series=None,
alternate_number=None,
alternate_count=None,
imprint=None,
notes=None,
web_link=None,
manga=None,
critical_rating=None,
issue_count=None,
)
assert md == md_test