upate
This commit is contained in:
+56
-27
@@ -1,4 +1,4 @@
|
||||
import json,os,time
|
||||
import json,os,time,random
|
||||
from utils.comic.ComicStr import comicStr
|
||||
from utils.ComicUtils import comicUtils
|
||||
from utils.FileUtils import fileUtils
|
||||
@@ -12,7 +12,33 @@ from utils.downloader import download_images
|
||||
class comicEntity:
|
||||
|
||||
@classmethod
|
||||
def oneComic(cls,c_url):
|
||||
def downladsComcis(cls,url):
|
||||
#漫画名
|
||||
data = htmlUtils.xpathData('//script[@id="__NEXT_DATA__"]/text()',url=url)
|
||||
# #
|
||||
data = json.loads(data[0])
|
||||
data = data.get("props")
|
||||
x = data.get("pageProps")
|
||||
books = x.get("books")
|
||||
len_books = len(books)
|
||||
baseUrl = comicInfo.getBaseUrl(url)
|
||||
for x in range(0, len_books):
|
||||
book = books[x]
|
||||
#https://rm01.xyz/books/052426c3-ec7d-4035-b614-3c9290ee625b
|
||||
book_id = book.get("id")
|
||||
book_name = book.get("name")
|
||||
comicHref = baseUrl+"/books/"+book_id
|
||||
random_int = random.uniform(8,30)
|
||||
wait = print(f"{random_int}秒后开始下载 漫画:{book_name}")
|
||||
time.sleep(random_int)
|
||||
cls.oneComic(comicHref, random.uniform(0,3))
|
||||
|
||||
print(books)
|
||||
#for comicHref in comicsHref:
|
||||
# cls.oneComic(comicHref,random.uniform(10,20))
|
||||
|
||||
@classmethod
|
||||
def oneComic(cls,c_url,sleep=None):
|
||||
#漫画名
|
||||
title = htmlUtils.xpathData('//div[@class="col"]/h5/text()',url=c_url,num=0)
|
||||
#别名
|
||||
@@ -46,41 +72,40 @@ class comicEntity:
|
||||
chapter = chapters[count_chapter]
|
||||
comicInfo.setChapterName(chapter)
|
||||
if not comicInfo.nextExistsGetPath("done_"):
|
||||
comicEntity.comicChapter(href,scramble=True,sleep=8)
|
||||
comicEntity.comicChapter(href,scramble=True,sleep=random.uniform(8,20))
|
||||
count_chapter += 1
|
||||
|
||||
#一本漫画下载后等待
|
||||
if not sleep == None:
|
||||
time.sleep(sleep)
|
||||
|
||||
'''
|
||||
|
||||
读取某章节下所有图片
|
||||
'''
|
||||
@classmethod
|
||||
def comicChapter(cls,chapter_url,scramble=None,sleep=None):
|
||||
cls.Onechapter(chapter_url,scramble,sleep)
|
||||
cls.Onechapter(chapter_url,scramble)
|
||||
#进入下个阶段
|
||||
comicInfo.nextImgToDownloadChapter()
|
||||
|
||||
if comicInfo.nextExistsGetPath("down_"):
|
||||
#章节图片全部下载后,调用下载封面
|
||||
netUtils.downloadComicIcon()
|
||||
#下个阶段
|
||||
comicInfo.nextDownloadToCBZChapter()
|
||||
if comicInfo.nextExistsGetPath("cbz_"):
|
||||
#下载后自动打包
|
||||
CBZUtils.packAutoComicChapterCBZ()
|
||||
comicInfo.nextCBZToDoneChapter()
|
||||
if not sleep == None:
|
||||
print(f"{sleep} 秒后开始下载下一个章节")
|
||||
time.sleep(sleep)
|
||||
|
||||
@classmethod
|
||||
def Onechapter(cls,chapter_url,scramble=None,sleep=None):
|
||||
def Onechapter(cls,chapter_url,scramble=None):
|
||||
if not str(chapter_url).startswith("http"):
|
||||
chapter_url = comicInfo.getBaseUrl() + chapter_url
|
||||
chapter_dir = cls.comicChapterDownload(chapter_url)
|
||||
if sleep == None:
|
||||
print("not sleep")
|
||||
#time.sleep(3)
|
||||
else:
|
||||
time.sleep(int(sleep))
|
||||
cls.comicChapterDownload(chapter_url)
|
||||
comicInfo.nextInfoToImgChapter()
|
||||
#下载完成后, 开始解密图片
|
||||
if scramble:
|
||||
chapter_dir = comicInfo.getDirComicChapter()
|
||||
dirs = os.listdir(chapter_dir)
|
||||
for img in dirs:
|
||||
isScramble = str(img).startswith("scramble=")
|
||||
@@ -88,7 +113,8 @@ class comicEntity:
|
||||
c_path = os.path.join(chapter_dir, img)
|
||||
imageUtils.getScrambleImage(c_path)
|
||||
#进入下一阶段
|
||||
comicInfo.nextInfoToImgChapter()
|
||||
comicInfo.nextImgToDownloadChapter()
|
||||
|
||||
|
||||
@classmethod
|
||||
def comicChapterDownload(cls,chapter_url):
|
||||
@@ -129,20 +155,23 @@ class comicEntity:
|
||||
tags = x.get("tags")
|
||||
x = tags
|
||||
print(x)
|
||||
count_image = 1
|
||||
count = 1
|
||||
list_img = []
|
||||
list_scramble = []
|
||||
list_fileName = []
|
||||
for image in images:
|
||||
image_src = image.get("src")
|
||||
scramble = image.get("scramble")
|
||||
print("count=",count_image)
|
||||
count_image = "{:0>3d}".format(count)
|
||||
list_img.append(image_src)
|
||||
list_scramble.append(scramble)
|
||||
print(image_src)
|
||||
print(scramble)
|
||||
count_image+=1
|
||||
print(count_image)
|
||||
print(list_img)
|
||||
print(totalChapter)
|
||||
image_src_prefix = "."+str(image_src).split(".")[-1]
|
||||
if scramble:
|
||||
su = "."+str(image_src).split(".")[-1]
|
||||
de_str = str(image_src).split("/")[-1].replace(su,"==")
|
||||
blocks = imageUtils.encodeImage(de_str)
|
||||
count_image = "scramble="+str(blocks)+"_"+count_image
|
||||
list_fileName.append(count_image+image_src_prefix)
|
||||
count+=1
|
||||
print("count_all_img=", count)
|
||||
#netUtils.downloadComicChapterImages(list_img,scrambles=list_scramble)
|
||||
download_images(list_img,comicInfo.getDirComicChapter(),scrambles=list_scramble)
|
||||
return download_images(list_img,comicInfo.getDirComicChapter(), filesName=list_fileName)
|
||||
Reference in New Issue
Block a user