NewComicDownloader/tests/common/test_ComicInfo.py
2025-07-11 09:04:51 +08:00

97 lines
3.7 KiB
Python

# module_b.py
import sys
import os
# 获取当前文件所在目录
# current_dir = os.path.dirname(os.path.abspath(__file__))
current_dir = "/Users/cc/Documents/Dev/WorkSpace/VSCodeProjects/NewComicDownloader"
# 添加父目录到 sys.path
# parent_dir = os.path.join(current_dir, '..')
# sys.path.insert(0, parent_dir)
sys.path.insert(0, current_dir)
# 现在可以使用绝对导入
from src.common.ComicInfo import ComicInfo, ComicPageInfo, ImageInfo, ComicInfoXml
from os import path as Path
class test_ImageInfo:
def test_get_image_size(self):
print(ImageInfo().get_image_size("photo.jpg"))
def test_get_image_hash(self):
print(ImageInfo().get_image_hash_advanced("photo.jpg"))
def test_get_image_metadata(self):
"""获取图片信息"""
page = self.get_image_metadata("photo.jpg")
print(page)
def test_get_image_metadata_from_zip(self):
"""从ZIP文件中获取图片信息"""
pages = ImageInfo().get_image_metadata_from_zip("test.zip")
print(pages)
# Define the ComicInfo and ComicPageInfo classes
class test_ComicInfo:
# ComicInfo.xml 中的选项
def test_ToString(self):
"""测试ComicInfo的字符串表示"""
comic = ComicInfo()
comic.Title = "Test Comic"
comic.Series = "Test Series"
comic.Number = "1"
comic.PageCount = 10
comic.Writer = "Test Writer"
comic.Pages.append(ComicPageInfo())
print(comic.toString())
class test_ComicPageInfo:
# ComicInfo.xml 中的<Page>
def test_ToString(self):
"""测试ComicPageInfo的字符串表示"""
page = ComicPageInfo()
page.Image = "test_image.jpg"
page.ImageSize = 123456
class test_ComicInfoXml:
def test_get_page_count(self):
"""测试获取ComicInfo.xml中的PageCount"""
zip_file = Path("test.zip")
page_count = self.get_page_count(zip_file)
print(f"zip_file={zip_file} PageCount: {page_count}")
def test_scrapy_xml_by_json(self):
""" 根据Json数据生成ComicInfo.xml
"""
json_data = {
"name": "选手村母猪调教",
"chapter": "第2话-总教练最「疼爱」的选手",
"author": "沃林,蜜果实",
"tags": "凌辱,调教,报仇,选手村,体操,硬调色情,新作",
"images": [
"001.jpg", "scramble=6_002.jpg", "scramble=5_003.jpg",
"004.jpg", "005.jpg", "scramble=5_006.jpg",
"007.jpg", "008.jpg", "scramble=7_009.jpg",
"scramble=9_010.jpg", "011.jpg", "012.jpg",
"scramble=6_013.jpg", "014.jpg", "015.jpg",
"scramble=7_016.jpg", "017.jpg", "018.jpg",
"019.jpg"
],
"description": ("「总教练,我愿意用身体换取机会…」在腐败的选手村里,总教练握有绝对的权力,"
+ "选手们只能任凭摆布。人们对成功的渴望不断滋长,却也因为过度的欲望濒临崩溃…"),
"genre": "韩漫",
"age_rating": "R18+",
"series": "选手村母猪调教",
"number": 2,
'page_count': 286
}
save_dir = "/Users/cc/Documents/Dev/WorkSpace/VSCodeProjects/NewComicDownloader/output/rm_comic/images/选手村母猪调教/第2话-总教练最「疼爱」的选手"
xsd_file = "ComicInfo_2.1.xsd"
pages = ComicInfoXml().scrapy_xml_by_json(json_data, save_dir=save_dir, xsd_file=xsd_file)
print(f"Generated pages: {pages}")
if __name__ == "__main__":
test_ComicInfoXml().test_scrapy_xml_by_json()