This commit is contained in:
parent
a7b5c0b786
commit
796aeb8aa7
4 changed files with 52 additions and 8 deletions
|
@ -97,6 +97,23 @@ class YourAPI:
|
||||||
The metadata as a dict
|
The metadata as a dict
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
# metadata types. have to be correct to be valid
|
||||||
|
{
|
||||||
|
"Title": str,
|
||||||
|
"Series": str,
|
||||||
|
"Number": str,
|
||||||
|
"Count": int,
|
||||||
|
"Volume": int,
|
||||||
|
"Summary": str,
|
||||||
|
"Genre": str,
|
||||||
|
"Web": str,
|
||||||
|
"PageCount": int,
|
||||||
|
"LanguageISO": str,
|
||||||
|
"Format": str,
|
||||||
|
"ScanInformation": str,
|
||||||
|
"SeriesGroup": str,
|
||||||
|
}
|
||||||
|
|
||||||
# example
|
# example
|
||||||
return {
|
return {
|
||||||
"Volume": "abc",
|
"Volume": "abc",
|
||||||
|
|
|
@ -163,12 +163,12 @@ class Mangadex:
|
||||||
for chapter in r.json()["data"]:
|
for chapter in r.json()["data"]:
|
||||||
attributes: dict = chapter["attributes"]
|
attributes: dict = chapter["attributes"]
|
||||||
# chapter infos from feed
|
# chapter infos from feed
|
||||||
chapter_num = attributes.get("chapter") or ""
|
chapter_num: str = attributes.get("chapter") or ""
|
||||||
chapter_vol = attributes.get("volume") or ""
|
chapter_vol: str = attributes.get("volume") or ""
|
||||||
chapter_uuid = chapter.get("id") or ""
|
chapter_uuid: str = chapter.get("id") or ""
|
||||||
chapter_name = attributes.get("title") or ""
|
chapter_name: str = attributes.get("title") or ""
|
||||||
chapter_external = attributes.get("externalUrl") or ""
|
chapter_external: str = attributes.get("externalUrl") or ""
|
||||||
chapter_pages = attributes.get("pages") or ""
|
chapter_pages: int = attributes.get("pages") or 0
|
||||||
|
|
||||||
# check for chapter title and fix it
|
# check for chapter title and fix it
|
||||||
if chapter_name:
|
if chapter_name:
|
||||||
|
@ -268,7 +268,7 @@ class Mangadex:
|
||||||
|
|
||||||
chapter_data = self.manga_chapter_data[chapter]
|
chapter_data = self.manga_chapter_data[chapter]
|
||||||
metadata = {
|
metadata = {
|
||||||
"Volume": chapter_data["volume"],
|
"Volume": int(chapter_data["volume"]),
|
||||||
"Number": chapter_data["chapter"],
|
"Number": chapter_data["chapter"],
|
||||||
"PageCount": chapter_data["pages"],
|
"PageCount": chapter_data["pages"],
|
||||||
"Title": chapter_data["name"],
|
"Title": chapter_data["name"],
|
||||||
|
|
|
@ -9,6 +9,23 @@ def write_metadata(chapter_path: Path, metadata: dict) -> None:
|
||||||
log.warning("Can't add metadata for pdf format. Skipping")
|
log.warning("Can't add metadata for pdf format. Skipping")
|
||||||
return
|
return
|
||||||
|
|
||||||
|
# define metadata types
|
||||||
|
metadata_types: dict[str, type] = {
|
||||||
|
"Title": str,
|
||||||
|
"Series": str,
|
||||||
|
"Number": str,
|
||||||
|
"Count": int,
|
||||||
|
"Volume": int,
|
||||||
|
"Summary": str,
|
||||||
|
"Genre": str,
|
||||||
|
"Web": str,
|
||||||
|
"PageCount": int,
|
||||||
|
"LanguageISO": str,
|
||||||
|
"Format": str,
|
||||||
|
"ScanInformation": str,
|
||||||
|
"SeriesGroup": str,
|
||||||
|
}
|
||||||
|
|
||||||
try:
|
try:
|
||||||
metadata_template = Path("mangadlp/metadata/ComicInfo.xml").read_text(
|
metadata_template = Path("mangadlp/metadata/ComicInfo.xml").read_text(
|
||||||
encoding="utf8"
|
encoding="utf8"
|
||||||
|
@ -22,12 +39,22 @@ def write_metadata(chapter_path: Path, metadata: dict) -> None:
|
||||||
log.info(f"Writing metadata to: '{metadata_file}'")
|
log.info(f"Writing metadata to: '{metadata_file}'")
|
||||||
log.debug(f"Metadata items: {metadata}")
|
log.debug(f"Metadata items: {metadata}")
|
||||||
for key, value in metadata.items():
|
for key, value in metadata.items():
|
||||||
|
# check if metadata is empty
|
||||||
if not value:
|
if not value:
|
||||||
continue
|
continue
|
||||||
|
# try to match with template
|
||||||
try:
|
try:
|
||||||
metadata_empty["ComicInfo"][key]
|
metadata_empty["ComicInfo"][key]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
continue
|
continue
|
||||||
|
# check if metadata type is correct
|
||||||
|
log.debug(f"Key:{key} -> value={type(value)} -> check={metadata_types[key]}")
|
||||||
|
if not isinstance(value, metadata_types[key]): # noqa
|
||||||
|
log.warning(
|
||||||
|
f"Metadata has wrong type: {key}:{metadata_types[key]} -> {value}"
|
||||||
|
)
|
||||||
|
continue
|
||||||
|
|
||||||
log.debug(f"Updating metadata: '{key}' = '{value}'")
|
log.debug(f"Updating metadata: '{key}' = '{value}'")
|
||||||
metadata_empty["ComicInfo"][key] = value
|
metadata_empty["ComicInfo"][key] = value
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
<ScanInformation></ScanInformation>
|
<ScanInformation></ScanInformation>
|
||||||
<SeriesGroup></SeriesGroup>
|
<SeriesGroup></SeriesGroup>
|
||||||
<BlackAndWhite>Unknown</BlackAndWhite>
|
<BlackAndWhite>Unknown</BlackAndWhite>
|
||||||
<Manga>Yes</Manga>
|
|
||||||
<AgeRating>Unknown</AgeRating>
|
<AgeRating>Unknown</AgeRating>
|
||||||
|
<Manga>Yes</Manga>
|
||||||
<Notes>Downloaded with https://github.com/olofvndrhr/manga-dlp</Notes>
|
<Notes>Downloaded with https://github.com/olofvndrhr/manga-dlp</Notes>
|
||||||
</ComicInfo>
|
</ComicInfo>
|
||||||
|
|
Loading…
Reference in a new issue