move custom types to own file
All checks were successful
ci/woodpecker/push/tests Pipeline was successful
All checks were successful
ci/woodpecker/push/tests Pipeline was successful
This commit is contained in:
parent
bde2b9ebe9
commit
9935c97f6c
5 changed files with 59 additions and 55 deletions
|
@ -1,6 +1,6 @@
|
|||
from typing import Dict, List, Union
|
||||
|
||||
from mangadlp.metadata import ChapterData
|
||||
from mangadlp.types import ChapterData,ComicInfo
|
||||
|
||||
# api template for manga-dlp
|
||||
|
||||
|
@ -56,7 +56,7 @@ class YourAPI:
|
|||
},
|
||||
}
|
||||
# or with --forcevol
|
||||
self.manga_chapter_data: Dict[str, Dict[str, Union[str, int]]] = {
|
||||
self.manga_chapter_data: Dict[str, ChapterData] = {
|
||||
"1:1": {
|
||||
"uuid": "abc",
|
||||
"volume": "1",
|
||||
|
@ -157,7 +157,7 @@ class YourAPI:
|
|||
|
||||
# example
|
||||
return {
|
||||
"Volume": "abc",
|
||||
"Volume": 1,
|
||||
"LanguageISO": "en",
|
||||
"Title": "test",
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ import requests
|
|||
from loguru import logger as log
|
||||
|
||||
from mangadlp import utils
|
||||
from mangadlp.metadata import ChapterData, ComicInfo
|
||||
from mangadlp.types import ChapterData, ComicInfo
|
||||
|
||||
|
||||
class Mangadex:
|
||||
|
|
|
@ -9,7 +9,8 @@ from mangadlp import downloader, utils
|
|||
from mangadlp.api.mangadex import Mangadex
|
||||
from mangadlp.cache import CacheDB
|
||||
from mangadlp.hooks import run_hook
|
||||
from mangadlp.metadata import ChapterData, write_metadata
|
||||
from mangadlp.metadata import write_metadata
|
||||
from mangadlp.types import ChapterData
|
||||
from mangadlp.utils import get_file_format
|
||||
|
||||
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
from pathlib import Path
|
||||
from typing import Any, Dict, Optional, Tuple, TypedDict, Union
|
||||
from typing import Any, Dict, Tuple, Union
|
||||
|
||||
import xmltodict
|
||||
from loguru import logger as log
|
||||
|
||||
from mangadlp.types import ComicInfo
|
||||
|
||||
METADATA_FILENAME = "ComicInfo.xml"
|
||||
METADATA_TEMPLATE = Path("mangadlp/metadata/ComicInfo_v2.0.xml")
|
||||
# define metadata types, defaults and valid values. an empty list means no value check
|
||||
|
@ -59,55 +61,6 @@ METADATA_TYPES: Dict[str, Tuple[type, Any, list[Union[str, int]]]] = {
|
|||
}
|
||||
|
||||
|
||||
class ComicInfo(TypedDict, total=False):
|
||||
"""ComicInfo.xml basic types.
|
||||
|
||||
Validation is done via metadata.validate_metadata()
|
||||
All valid types and values are specified in metadata.METADATA_TYPES
|
||||
"""
|
||||
|
||||
Title: Optional[str]
|
||||
Series: Optional[str]
|
||||
Number: Optional[str]
|
||||
Count: Optional[int]
|
||||
Volume: Optional[int]
|
||||
AlternateSeries: Optional[str]
|
||||
AlternateNumber: Optional[str]
|
||||
AlternateCount: Optional[int]
|
||||
Summary: Optional[str]
|
||||
Notes: Optional[str]
|
||||
Year: Optional[int]
|
||||
Month: Optional[int]
|
||||
Day: Optional[int]
|
||||
Writer: Optional[str]
|
||||
Colorist: Optional[str]
|
||||
Publisher: Optional[str]
|
||||
Genre: Optional[str]
|
||||
Web: Optional[str]
|
||||
PageCount: Optional[int]
|
||||
LanguageISO: Optional[str]
|
||||
Format: Optional[str]
|
||||
BlackAndWhite: Optional[str]
|
||||
Manga: Optional[str]
|
||||
ScanInformation: Optional[str]
|
||||
SeriesGroup: Optional[str]
|
||||
AgeRating: Optional[str]
|
||||
CommunityRating: Optional[int]
|
||||
|
||||
|
||||
class ChapterData(TypedDict):
|
||||
"""Basic chapter-data types.
|
||||
|
||||
All values have to be provided.
|
||||
"""
|
||||
|
||||
uuid: str
|
||||
volume: str
|
||||
chapter: str
|
||||
name: str
|
||||
pages: int
|
||||
|
||||
|
||||
def validate_metadata(metadata_in: ComicInfo) -> Dict[str, ComicInfo]:
|
||||
log.info("Validating metadata")
|
||||
|
||||
|
|
50
mangadlp/types.py
Normal file
50
mangadlp/types.py
Normal file
|
@ -0,0 +1,50 @@
|
|||
from typing import Optional, TypedDict
|
||||
|
||||
|
||||
class ComicInfo(TypedDict, total=False):
|
||||
"""ComicInfo.xml basic types.
|
||||
|
||||
Validation is done via metadata.validate_metadata()
|
||||
All valid types and values are specified in metadata.METADATA_TYPES
|
||||
"""
|
||||
|
||||
Title: Optional[str]
|
||||
Series: Optional[str]
|
||||
Number: Optional[str]
|
||||
Count: Optional[int]
|
||||
Volume: Optional[int]
|
||||
AlternateSeries: Optional[str]
|
||||
AlternateNumber: Optional[str]
|
||||
AlternateCount: Optional[int]
|
||||
Summary: Optional[str]
|
||||
Notes: Optional[str]
|
||||
Year: Optional[int]
|
||||
Month: Optional[int]
|
||||
Day: Optional[int]
|
||||
Writer: Optional[str]
|
||||
Colorist: Optional[str]
|
||||
Publisher: Optional[str]
|
||||
Genre: Optional[str]
|
||||
Web: Optional[str]
|
||||
PageCount: Optional[int]
|
||||
LanguageISO: Optional[str]
|
||||
Format: Optional[str]
|
||||
BlackAndWhite: Optional[str]
|
||||
Manga: Optional[str]
|
||||
ScanInformation: Optional[str]
|
||||
SeriesGroup: Optional[str]
|
||||
AgeRating: Optional[str]
|
||||
CommunityRating: Optional[int]
|
||||
|
||||
|
||||
class ChapterData(TypedDict):
|
||||
"""Basic chapter-data types.
|
||||
|
||||
All values have to be provided.
|
||||
"""
|
||||
|
||||
uuid: str
|
||||
volume: str
|
||||
chapter: str
|
||||
name: str
|
||||
pages: int
|
Loading…
Reference in a new issue