246 lines
9.4 KiB
Python
246 lines
9.4 KiB
Python
import json,re
|
|
from opencc import OpenCC
|
|
from queue import Queue
|
|
from utils.OldUtils import OldUtils
|
|
|
|
class Comic:
|
|
# ComicInfo.xml and ComicChapter.json bengin
|
|
# value origin node dep
|
|
dict_chapter = [None,None,"Title","章节名"]
|
|
dict_comic_name = [None,None,"Series","漫画名"]
|
|
dict_number = [None,None,"Number","编号"]
|
|
dict_comic_names = [None,None,"SeriesGroup","别名"]
|
|
dict_dep = [None,None,"Summary","概述"]
|
|
dict_year = [None,None,"Year","年"]
|
|
dict_month = [None,None,"Month","月"]
|
|
dict_day = [None,None,"Day","日"]
|
|
dict_author = [None,None,"Writer","作者"]
|
|
dict_cbs = [None,None,"Publisher","出版社"]
|
|
dict_genre = [None,None,"Genre","流派"]
|
|
dict_tags = [None,None,"Tags","标签"]
|
|
dict_homepage = [None,None,"Web","主页"]
|
|
dict_page_count = [None,None,"PageCount","总页数"]
|
|
dict_language = [None,None,"LanguageISO","语言"]
|
|
dict_agerating = [None,None,"AgeRating","年龄分级"]
|
|
dict_pages = [None,None,"Pages","页码"]
|
|
CURRENT_DOWN_LINK = None
|
|
# ComicInfo.xml and ComicChapter.json end
|
|
dict_icon = [None,None,"Icon","图标"]
|
|
dict_chapter_imgs = [None,None,"ChapterImgs","图像"]
|
|
#主页
|
|
(list_chapter,
|
|
update_at,current_chapter_img,file_chapter_imgs) = [None,None,None,None]
|
|
|
|
|
|
#繁体中文转简体中文
|
|
@classmethod
|
|
def ChineseConvert(cls, text,convert='t2s'): return OpenCC(convert).convert(str(text))
|
|
#处理成符合规定的文件名
|
|
@classmethod
|
|
def fixFileName(cls,filename,replace=None):
|
|
if not isinstance(filename,str): return filename
|
|
intab = r'[?*/\|.:><]'
|
|
str_replace = ""
|
|
if replace != None: str_replace = replace
|
|
filename = re.sub(intab, str_replace, filename)
|
|
count = 1
|
|
while True:
|
|
str_file = filename[0-count]
|
|
if str_file == " ": count += 1
|
|
else:
|
|
filename = filename[0:len(filename)+1-count]
|
|
break
|
|
return filename
|
|
|
|
@classmethod
|
|
def setValue(cls,value):
|
|
if value != None: value = cls.ChineseConvert(value)
|
|
return value
|
|
|
|
@classmethod
|
|
def setField(cls,field,value,origin=True,convert=True):
|
|
if value != None:
|
|
if origin:
|
|
field[1] = value
|
|
if convert: value = cls.ChineseConvert(value)
|
|
field[0] = value
|
|
return field
|
|
|
|
@classmethod
|
|
def getFieldValue(cls,field):
|
|
if field == None: return None
|
|
return field[0]
|
|
@classmethod
|
|
def setFieldOrigin(cls,filed,origin):
|
|
filed[1] = origin
|
|
return filed
|
|
@classmethod
|
|
def getFieldOrigin(cls,filed): return filed[1]
|
|
@classmethod
|
|
def getFieldNode(cls,filed): return filed[2]
|
|
|
|
@classmethod
|
|
def getValue(cls,field,exec=None):
|
|
if exec != None: return cls.parseExec(field,exec=exec)
|
|
return field
|
|
#章节名
|
|
@classmethod
|
|
def setChapterName(cls,value,exec=None):
|
|
value = cls.fixFileName(cls.parseExec(value,exec=exec))
|
|
OldUtils.setOldChapter(value)
|
|
cls.dict_chapter = cls.setField(cls.dict_chapter,value)
|
|
|
|
@classmethod
|
|
def getChapterName(cls): return cls.getFieldValue(cls.dict_chapter)
|
|
@classmethod
|
|
def getOriginChapterName(cls): return cls.getFieldOrigin(cls.dict_chapter)
|
|
|
|
#漫画名
|
|
@classmethod
|
|
def setComicName(cls,value,exec=None):
|
|
value = cls.fixFileName(cls.parseExec(value,exec=exec))
|
|
OldUtils.setOldComicName(value)
|
|
cls.dict_comic_name = cls.setField(cls.dict_comic_name,value)
|
|
|
|
@classmethod
|
|
def getComicName(cls): return cls.getFieldValue(cls.dict_comic_name)
|
|
@classmethod
|
|
def getOriginComicName(cls): return cls.getFieldOrigin(cls.dict_comic_name)
|
|
#编号
|
|
@classmethod
|
|
def setNumber(cls,value): cls.dict_number = cls.setField(cls.dict_number,value)
|
|
@classmethod
|
|
def getNumber(cls): return cls.getFieldValue(cls.dict_number)
|
|
#概述
|
|
@classmethod
|
|
def setDep(cls,value,exec=None):
|
|
cls.dict_dep = cls.setField(cls.dict_dep,cls.parseExec(value,exec=exec))
|
|
@classmethod
|
|
def getDep(cls): return cls.getFieldValue(cls.dict_dep)
|
|
#作者
|
|
@classmethod
|
|
def setAuthor(cls,value): cls.dict_author = cls.setField(cls.dict_author,value)
|
|
@classmethod
|
|
def getAuthor(cls): return cls.getFieldValue(cls.dict_author)
|
|
#流派
|
|
@classmethod
|
|
def setGenre(cls,value): cls.dict_genre = cls.setField(cls.dict_genre,value)
|
|
@classmethod
|
|
def getGenre(cls): return cls.getFieldValue(cls.dict_genre)
|
|
#语言
|
|
@classmethod
|
|
def setLanguage(cls,value): cls.dict_language = cls.setField(cls.dict_language,value)
|
|
@classmethod
|
|
def getLanguage(cls): return cls.getFieldValue(cls.dict_language)
|
|
#年龄分级
|
|
@classmethod
|
|
def setAgeRating(cls,value): cls.dict_agerating = cls.setField(cls.dict_agerating,value)
|
|
@classmethod
|
|
def getAgeRating(cls): return cls.getFieldValue(cls.dict_agerating)
|
|
#标签
|
|
@classmethod
|
|
def setTags(cls,value): cls.dict_tags = cls.setField(cls.dict_tags,value)
|
|
@classmethod
|
|
def getTags(cls): return cls.getFieldValue(cls.dict_tags)
|
|
#总页数
|
|
@classmethod
|
|
def setPageCount(cls,value): cls.dict_page_count = cls.setField(cls.dict_page_count,value)
|
|
@classmethod
|
|
def getPageCount(cls): return cls.getFieldValue(cls.dict_page_count)
|
|
|
|
#------------------------------------------------------------------------
|
|
@classmethod
|
|
def parseExec(cls,data,exec,item=True):
|
|
if data !=None and exec != None:
|
|
dots = str(exec).split(".")
|
|
if not isinstance(data,dict): data = json.loads(data)
|
|
for dot in dots:
|
|
data = data.get(dot)
|
|
return data
|
|
@classmethod
|
|
def setHomePage(cls,value): cls.dict_homepage = cls.setField(cls.dict_homepage,value)
|
|
@classmethod
|
|
def getHomePage(cls): return cls.getFieldValue(cls.dict_homepage)
|
|
@classmethod
|
|
def setIcon(cls,value): cls.icon = cls.setField(cls.dict_icon,value)
|
|
@classmethod
|
|
def getIcon(cls): return cls.getFieldValue(cls.dict_icon)
|
|
@classmethod
|
|
def setListChapter(cls,value): cls.list_chapter = value
|
|
@classmethod
|
|
def getListChapter(cls): return cls.list_chapter
|
|
@classmethod
|
|
def getLenChapters(cls): return len(cls.list_chapter)
|
|
@classmethod
|
|
def setChapterImgs(cls,value,exec=None,item=None):
|
|
cls.dict_chapter_imgs = cls.setField(cls.dict_chapter_imgs,cls.parseExec(value,exec=exec,item=item),convert=False)
|
|
@classmethod
|
|
def getChapterImgs(cls): return cls.getFieldValue(cls.dict_chapter_imgs)
|
|
@classmethod
|
|
def setUpdateAt(cls,value): cls.update_at = value
|
|
@classmethod
|
|
def getUpdateAt(cls): return cls.update_at
|
|
@classmethod
|
|
def setCurrentChapterImg(cls,value): cls.current_chapter_img = value
|
|
@classmethod
|
|
def getCurrentChapterImg(cls): return cls.current_chapter_img
|
|
@classmethod
|
|
def setChapterFilesName(cls,value): cls.file_chapter_imgs= value
|
|
@classmethod
|
|
def getChapterFilesName(cls): return cls.file_chapter_imgs
|
|
@classmethod
|
|
def setCurrentDownLink(cls,value): cls.CURRENT_DOWN_LINK = value
|
|
@classmethod
|
|
def getCurrentDownLink(cls): return cls.CURRENT_DOWN_LINK
|
|
|
|
class ListComic:
|
|
LIST_COMIC_QUEUE = Queue()
|
|
(LIST_COMIC_NAME,LIST_COMIC_LINK,LIST_COMIC_UPDATEAT) = [None,None,None]
|
|
|
|
@classmethod
|
|
def setListComicsLinksUpdateAt(cls,names,links,update_at):
|
|
if isinstance(names,list) and isinstance(links,list) and isinstance(update_at,list):
|
|
for x in range(0,len(names)):
|
|
cls.LIST_COMIC_QUEUE.put([names[x],links[x],update_at[x]])
|
|
@classmethod
|
|
def getListComicsLinksUpdateAt(cls):
|
|
if cls.LIST_COMIC_NAME != None and cls.LIST_COMIC_LINK != None:
|
|
cls.setListComicsLinksUpdateAt(cls.LIST_COMIC_NAME,cls.LIST_COMIC_LINK,cls.LIST_COMIC_UPDATEAT)
|
|
(cls.LIST_COMIC_NAME,cls.LIST_COMIC_LINK,cls.LIST_COMIC_UPDATEAT) = [None,None,None]
|
|
return cls.LIST_COMIC_QUEUE.get(False)
|
|
|
|
@classmethod
|
|
def addListComicChapterLink(cls,name,link,update_at):
|
|
if name != None and link != None:
|
|
cls.LIST_COMIC_QUEUE.put(name,link,update_at)
|
|
|
|
@classmethod
|
|
def getListValue(cls,result,type,start_add=None,result_type="list"):
|
|
if result == None: return None
|
|
if type == None: return result
|
|
if result_type == "list" and type != None:
|
|
data = []
|
|
for x in range(0, len(result)):
|
|
if start_add != None:
|
|
data.append(start_add+result[x].get(type))
|
|
else:
|
|
data.append(result[x].get(type))
|
|
return data
|
|
return result
|
|
|
|
@classmethod
|
|
def setListComicName(cls,value,type=None): cls.LIST_COMIC_NAME = cls.getListValue(value,type)
|
|
@classmethod
|
|
def getListComicName(cls): return cls.LIST_COMIC_NAME
|
|
@classmethod
|
|
def setListComicChapterLink(cls,value,type=None,start_add=None): cls.LIST_COMIC_LINK = cls.getListValue(value,type,start_add)
|
|
@classmethod
|
|
def getListComicChapterLink(cls): return cls.LIST_COMIC_LINK
|
|
@classmethod
|
|
def setListComicUpdateAt(cls,value,type=None): cls.LIST_COMIC_UPDATEAT = cls.getListValue(value,type)
|
|
@classmethod
|
|
def getListComicUpdateAt(cls): return cls.LIST_COMIC_UPDATEAT
|
|
@classmethod
|
|
def getListComicChapterLink(cls): return cls.LIST_COMIC_QUEUE.get(False)
|
|
|
|
#domain end.... |