clear
This commit is contained in:
parent
5f5b6cb6ec
commit
ca805fe252
@ -1,9 +1,9 @@
|
|||||||
import xml.etree.ElementTree as ET
|
import xml.etree.ElementTree as ET
|
||||||
from xml.dom import minidom
|
from xml.dom import minidom
|
||||||
from typing import List
|
from typing import List
|
||||||
import json,os
|
import os
|
||||||
from lxml import etree
|
from lxml import etree
|
||||||
from Comics.settings import COMIC_INFO_XML_FILE,COMIC_INFO_XSD_FILE,OUTPUT_DIR,PROJECT_KEY
|
from Comics.settings import COMIC_INFO_XSD_FILE
|
||||||
|
|
||||||
# Define the ComicInfo and ComicPageInfo classes
|
# Define the ComicInfo and ComicPageInfo classes
|
||||||
class ComicInfo:
|
class ComicInfo:
|
||||||
|
|||||||
@ -104,58 +104,3 @@ class BooksItem(Item):
|
|||||||
current_project = Field()
|
current_project = Field()
|
||||||
names = Field()
|
names = Field()
|
||||||
urls = Field()
|
urls = Field()
|
||||||
|
|
||||||
class ImageItem(Item):
|
|
||||||
image_url = Field()
|
|
||||||
image_name = Field()
|
|
||||||
image_path = Field()
|
|
||||||
image_type = Field()
|
|
||||||
isScramble = Field()
|
|
||||||
|
|
||||||
class Image():
|
|
||||||
def setImage(self, url, scramble): return { "src" : url, "scramble": scramble}
|
|
||||||
|
|
||||||
# 序列化-作者
|
|
||||||
def serializer_info_writer(value):
|
|
||||||
(list_value, value) = [[], str(value).replace("&", " ")]
|
|
||||||
for v in set(str(value).split(" ")):
|
|
||||||
list_value.append(v)
|
|
||||||
return ",".join(list_value)
|
|
||||||
|
|
||||||
# (私有)序列化-图像
|
|
||||||
def _serialize_info_images(value, result_type=None):
|
|
||||||
images = []
|
|
||||||
for image in value:
|
|
||||||
if os.sep not in image:
|
|
||||||
images.append(ComicPath().getFileScrambleImageSave(image,True,False))
|
|
||||||
if result_type == "count":
|
|
||||||
return len(images)
|
|
||||||
else:
|
|
||||||
return images
|
|
||||||
|
|
||||||
# 序列化-图像
|
|
||||||
def serializer_info_images(value): return _serialize_info_images(value)
|
|
||||||
|
|
||||||
# 序列化-合计
|
|
||||||
def serializer_info_images_count(value): return _serialize_info_images(value, "count")
|
|
||||||
|
|
||||||
class ComicInfoItem(Item):
|
|
||||||
Title = Field(desc="章节名", info='chapter')
|
|
||||||
Series = Field(desc="漫画名", info='name')
|
|
||||||
Number = Field(desc="编号", info='index')
|
|
||||||
SeriesGroup = Field(desc="别名")
|
|
||||||
Summary = Field(desc="概述", info='dep')
|
|
||||||
Year = Field(desc="年")
|
|
||||||
Month = Field(desc="月")
|
|
||||||
Day = Field(desc="日")
|
|
||||||
Writer = Field(desc="作者", info='author',serializer=serializer_info_writer)
|
|
||||||
Publisher = Field(desc="出版社")
|
|
||||||
Genre = Field(desc="流派", info='genre')
|
|
||||||
Tags = Field(desc="标签", info='tags')
|
|
||||||
Web = Field(desc="主页")
|
|
||||||
PageCount = Field(desc="总页数", info='count')
|
|
||||||
LanguageISO = Field(desc="语言")
|
|
||||||
AgeRating = Field(desc="年龄分级", info='age_rating')
|
|
||||||
Pages = Field(desc="页码", info='images', serializer=serializer_info_images)
|
|
||||||
# ComicInfo.xml and ComicChapter.json end
|
|
||||||
|
|
||||||
@ -183,6 +183,8 @@ class ComicLoader(BaseLoader):
|
|||||||
self.save_sname_schapter()
|
self.save_sname_schapter()
|
||||||
return super().load_item()
|
return super().load_item()
|
||||||
|
|
||||||
|
def setImageItem(self, url, scramble): return { "src" : url, "scramble": scramble}
|
||||||
|
|
||||||
def set_image_item(self, image_url, image_path, image_name, image_scramble="False", image_type="Image"):
|
def set_image_item(self, image_url, image_path, image_name, image_scramble="False", image_type="Image"):
|
||||||
return { "image_url" : image_url, "image_path" : image_path, "image_name" : image_name, "image_scramble" : image_scramble , "image_type" : image_type}
|
return { "image_url" : image_url, "image_path" : image_path, "image_name" : image_name, "image_scramble" : image_scramble , "image_type" : image_type}
|
||||||
|
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
# useful for handling different item types with a single interface
|
# useful for handling different item types with a single interface
|
||||||
import os,scrapy,logging,shutil
|
import os,scrapy,logging,shutil
|
||||||
from Comics import settings
|
from Comics import settings
|
||||||
from Comics.items import ComicItem,ImageItem
|
from Comics.items import ComicItem
|
||||||
from Comics.loader import ComicLoader
|
from Comics.loader import ComicLoader
|
||||||
from Comics.utils import CBZUtils,fileUtils as fu
|
from Comics.utils import CBZUtils,fileUtils as fu
|
||||||
from Comics.utils import ComicPath
|
from Comics.utils import ComicPath
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import scrapy,logging,os,skip,json,re
|
import scrapy,logging,os,skip,re
|
||||||
from Comics.items import ComicItem,Image
|
from Comics.items import ComicItem
|
||||||
from Comics.items import BooksItem
|
from Comics.items import BooksItem
|
||||||
from Comics.loader import ComicLoader
|
from Comics.loader import ComicLoader
|
||||||
from Comics.loader import BooksLoader
|
from Comics.loader import BooksLoader
|
||||||
@ -72,7 +72,7 @@ class RmComicSpider(scrapy.Spider):
|
|||||||
sr = sr_value.group(1) # group(1) 返回第一个捕获组,即数字部分
|
sr = sr_value.group(1) # group(1) 返回第一个捕获组,即数字部分
|
||||||
else:
|
else:
|
||||||
print("No match found")
|
print("No match found")
|
||||||
images_urls.append(Image().setImage(url=link, scramble=sr.replace("0", "False").replace("1", "True")))
|
images_urls.append(ci.setImageItem(url=link, scramble=sr.replace("0", "False").replace("1", "True")))
|
||||||
ci.image_urls(value=images_urls)
|
ci.image_urls(value=images_urls)
|
||||||
yield ci.load_item()
|
yield ci.load_item()
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user