97 lines
3.7 KiB
Python
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() |