修复下载功能,优化搜索结果显示,修复epub基本信息及合并bug
This commit is contained in:
parent
fd3bd8656e
commit
edd85309db
1 changed files with 29 additions and 24 deletions
|
@ -196,6 +196,7 @@ class Download_Novel:
|
|||
|
||||
time.sleep(self.interval)
|
||||
|
||||
# 标志位 0 为
|
||||
file = 0
|
||||
# 判断是否全部下载成功
|
||||
for i in range(0, len(self.chapter_urls)):
|
||||
|
@ -203,7 +204,14 @@ class Download_Novel:
|
|||
if not status:
|
||||
file += 1
|
||||
break
|
||||
if not file:
|
||||
if file:
|
||||
print('部分文件下载失败,限制线程数可以提高下载成功率,是否重新下载个别文件?')
|
||||
download = input('0 退出\n1 重试\n')
|
||||
if download == 0:
|
||||
exit(0)
|
||||
else:
|
||||
self.download_process()
|
||||
else:
|
||||
convert_type = int(input('下载成功!\n请输入要合并的格式:\n0 TxT文件\n1 Epub文件\n'))
|
||||
convert_status = True
|
||||
if convert_type == 0:
|
||||
|
@ -214,7 +222,7 @@ class Download_Novel:
|
|||
txt_files = []
|
||||
for n in range(0, len(self.chapter_urls)):
|
||||
txt_files.append(self.file_path + str(n) + '.txt')
|
||||
# print('txt_files:',txt_files)
|
||||
|
||||
convert_status = self.merge_txt_to_epub(txt_files, self.download_path + self.title + '.epub')
|
||||
|
||||
if convert_status:
|
||||
|
@ -223,13 +231,6 @@ class Download_Novel:
|
|||
print('合并失败!请删除downloads下面目录后重新运行程序!')
|
||||
exit(1)
|
||||
|
||||
else:
|
||||
print('部分文件下载失败,限制线程数可以提高下载成功率,是否重新下载个别文件?')
|
||||
download = input('0 退出\n1 重试\n')
|
||||
if download == 0:
|
||||
exit(0)
|
||||
else:
|
||||
self.download_process()
|
||||
|
||||
# 合并为txt文件
|
||||
def merge_txt_file(self, merged_file_name=''):
|
||||
|
@ -285,7 +286,8 @@ class Download_Novel:
|
|||
book.set_title(self.title)
|
||||
book.set_language('zh')
|
||||
book.add_author(self.author)
|
||||
book.set_direction(self.intro)
|
||||
book.add_metadata('DC', 'description', self.intro)
|
||||
|
||||
# 添加封面
|
||||
# 获取图片并将其转换为字节流
|
||||
response = requests.get(self.cover)
|
||||
|
@ -296,10 +298,8 @@ class Download_Novel:
|
|||
print('合并中。。。。。。')
|
||||
# print(txt_files)
|
||||
|
||||
# 书籍目录
|
||||
book_spine = []
|
||||
# 遍历所有txt文件
|
||||
# os.chdir(title)
|
||||
# book.spine.append('nav')
|
||||
for i, txt_file in enumerate(txt_files):
|
||||
# 读取txt文件内容
|
||||
with open(txt_file, 'r', encoding='utf-8') as file:
|
||||
|
@ -314,10 +314,12 @@ class Download_Novel:
|
|||
|
||||
# content = [' ' + line + '<br>' for line in content]
|
||||
# 处理html文档
|
||||
content[0] = f""" <div class="calibre2" id="calibre_pb_0"></div><h1 class="kindle-cn-heading" id="calibre_pb_1">
|
||||
content[0] = f""" <div class="calibre2" id="calibre_pb_0"></div>\n<h1 class="kindle-cn-heading" id="calibre_pb_1">
|
||||
{content[0]} </h1> """
|
||||
for j, line in enumerate(content[1:]):
|
||||
content[j + 1] = '<p class="calibre3">' + line + '</p>\n'
|
||||
|
||||
|
||||
# content.append('</body></html>')
|
||||
except IndexError as e:
|
||||
print(e)
|
||||
|
@ -327,12 +329,12 @@ class Download_Novel:
|
|||
chapter = epub.EpubHtml(title=chapter_title, file_name='text/' + str(i) + '.xhtml')
|
||||
chapter.content = ''.join(content) # 将整个文件内容作为章节内容
|
||||
# 下面的是将css文件引用到单个章节里面
|
||||
page_style = open('./css/page_styles.css', 'r', encoding='utf-8').read()
|
||||
# page_style = open('./css/page_styles.css', 'r', encoding='utf-8').read()
|
||||
page_style1 = open('./css/page_styles1.css', 'r', encoding='utf-8').read()
|
||||
style = open('./css/stylesheet.css', 'r', encoding='utf-8').read()
|
||||
chapter.add_item(
|
||||
epub.EpubItem(uid="page_style", file_name="../style/page_styles.css", media_type="text/css",
|
||||
content=page_style))
|
||||
# chapter.add_item(
|
||||
# epub.EpubItem(uid="page_style", file_name="../style/page_styles.css", media_type="text/css",
|
||||
# content=page_style))
|
||||
chapter.add_item(
|
||||
epub.EpubItem(uid="page_style1", file_name="../style/page_styles1.css", media_type="text/css",
|
||||
content=page_style1))
|
||||
|
@ -342,14 +344,17 @@ class Download_Novel:
|
|||
|
||||
# 将章节添加到书籍中
|
||||
book.add_item(chapter)
|
||||
|
||||
book_spine.append(chapter)
|
||||
book.spine.append(chapter)
|
||||
book.toc.append(epub.Link('text/' + str(i) + '.xhtml', chapter_title, str(i)))
|
||||
# print('xxxxxxxx:','text/' + str(i) + '.xhtml', chapter_title, str(i))
|
||||
|
||||
# 将目录添加到书籍中
|
||||
# book.toc = toc
|
||||
# book.spine = book_spine
|
||||
book.add_item(epub.EpubNcx())
|
||||
book.add_item(epub.EpubNav())
|
||||
book.spine = book_spine
|
||||
book.toc = book_spine
|
||||
|
||||
|
||||
|
||||
# 设置书籍的样式文件
|
||||
page_style = open('./css/page_styles.css', 'r', encoding='utf-8').read()
|
||||
|
@ -394,8 +399,8 @@ if __name__ == '__main__':
|
|||
print(response)
|
||||
print('搜索到 ' + str(len(response)) + ' 个结果\n')
|
||||
print('---------------------------------------\n')
|
||||
for i, book in enumerate(response):
|
||||
print(str(i) + ' 书籍名称:' + book['articlename'] + '\n作者:' + book['author'] + '\n简介:' + book[
|
||||
for i, book in enumerate(reversed(response)):
|
||||
print(str(len(response) - 1 - i) + ' 书籍名称:' + book['articlename'] + '\n作者:' + book['author'] + '\n简介:' + book[
|
||||
'intro'] + '...\n')
|
||||
print('---------------------------------------')
|
||||
print('---------------------------------------\n')
|
||||
|
|
Loading…
Reference in a new issue