206 lines
7.6 KiB
Python
206 lines
7.6 KiB
Python
import json,re
|
|
from opencc import OpenCC
|
|
from queue import Queue
|
|
from utils.OldUtils import OldUtils
|
|
|
|
class Comic:
|
|
#章节名 漫画名 编号 概述 作者
|
|
(chapter,comic_name,number,dep,author) = [None,None,None,None,None]
|
|
#流派 语言 年龄分级 标签 总页数
|
|
(genre,language,agerating,tags,page_count) = [None,None,None,None,None]
|
|
#页数 出版社 年 月 日
|
|
(pages,cbs,year,month,day) = [None,None,None,None,None]
|
|
#主页 别名
|
|
(homepage,comic_names) = [None,None]
|
|
CURRENT_DOWN_LINK = 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 getValue(cls,dict,exec=None):
|
|
if exec != None: return cls.parseExec(dict,exec=exec)
|
|
return dict
|
|
@classmethod
|
|
def getChapter(cls): return cls.chapter
|
|
@classmethod
|
|
def getComicName(cls): return cls.comic_name
|
|
@classmethod
|
|
def getNumber(cls): return cls.number
|
|
#章节名
|
|
@classmethod
|
|
def setChapterName(cls,value,exec=None):
|
|
value = cls.fixFileName(cls.parseExec(value,exec=exec))
|
|
OldUtils.setOldChapter(value)
|
|
cls.chapter = cls.setValue(value)
|
|
@classmethod
|
|
def getChapterName(cls): return cls.getValue(cls.chapter)
|
|
|
|
#漫画名
|
|
@classmethod
|
|
def setComicName(cls,value,exec=None):
|
|
value = cls.fixFileName(cls.parseExec(value,exec=exec))
|
|
OldUtils.setOldComicName(value)
|
|
cls.comic_name = cls.setValue(value)
|
|
@classmethod
|
|
def getComicName(cls): return cls.getValue(cls.comic_name)
|
|
#编号
|
|
@classmethod
|
|
def setNumber(cls,value): cls.number = cls.setValue(value)
|
|
@classmethod
|
|
def getNumber(cls): return cls.getValue(cls.number)
|
|
#概述
|
|
@classmethod
|
|
def setDep(cls,value,exec=None):
|
|
cls.dep = cls.setValue(cls.parseExec(value,exec=exec))
|
|
@classmethod
|
|
def getDep(cls): return cls.getValue(cls.dep)
|
|
#作者
|
|
@classmethod
|
|
def setAuthor(cls,value): cls.author = cls.setValue(value)
|
|
@classmethod
|
|
def getAuthor(cls): return cls.getValue(cls.author)
|
|
#流派
|
|
@classmethod
|
|
def setGenre(cls,value): cls.genre = cls.setValue(value)
|
|
@classmethod
|
|
def getGenre(cls): return cls.getValue(Comic.genre)
|
|
#语言
|
|
@classmethod
|
|
def setLanguage(cls,value): cls.language = cls.setValue(value)
|
|
@classmethod
|
|
def getLanguage(cls): return cls.getValue(Comic.language)
|
|
#年龄分级
|
|
@classmethod
|
|
def setAgeRating(cls,value): cls.agerating = cls.setValue(value)
|
|
@classmethod
|
|
def getAgeRating(cls): return cls.getValue(Comic.agerating)
|
|
#标签
|
|
@classmethod
|
|
def setTags(cls,value): cls.tags = cls.setValue(value)
|
|
@classmethod
|
|
def getTags(cls): return cls.getValue(Comic.tags)
|
|
#总页数
|
|
@classmethod
|
|
def setPageCount(cls,value): cls.page_count = cls.setValue(value)
|
|
@classmethod
|
|
def getPageCount(cls): return cls.getValue(Comic.page_count)
|
|
#主页
|
|
(homepage,icon,list_chapter,chapter_imgs,
|
|
update_at,current_chapter_img,file_chapter_imgs) = [None,None,None,None,None,None,None]
|
|
|
|
@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.homepage = value
|
|
@classmethod
|
|
def getHomePage(cls): return cls.homepage
|
|
@classmethod
|
|
def setIcon(cls,value): cls.icon = value
|
|
@classmethod
|
|
def getIcon(cls): return cls.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.chapter_imgs = cls.parseExec(value,exec=exec,item=item)
|
|
@classmethod
|
|
def getChapterImgs(cls): return cls.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.... |