From 237ce5280ad4787040d5c05a865c5c7edf330656 Mon Sep 17 00:00:00 2001 From: yihong Date: Sat, 8 Apr 2023 17:45:14 +0800 Subject: [PATCH] fix: #239 #238 (#240) --- book_maker/loader/epub_loader.py | 11 ++++++----- book_maker/loader/txt_loader.py | 2 +- book_maker/translator/chatgptapi_translator.py | 3 +-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/book_maker/loader/epub_loader.py b/book_maker/loader/epub_loader.py index 16d7ec8..8a04bcb 100644 --- a/book_maker/loader/epub_loader.py +++ b/book_maker/loader/epub_loader.py @@ -270,10 +270,9 @@ class EPUBBookLoader(BaseBookLoader): for item in complete_book.get_items(): if item.file_name != fixname: new_book.add_item(item) + if soup_complete: + complete_item.content = soup_complete.encode() - complete_item.content = soup_complete.encode() - - # ================================================= index = self.process_item( complete_item, index, @@ -367,7 +366,8 @@ class EPUBBookLoader(BaseBookLoader): if self.is_test and index >= self.test_num: break - item.content = soup.encode() + if soup: + item.content = soup.encode() new_book.add_item(item) return index @@ -465,7 +465,8 @@ class EPUBBookLoader(BaseBookLoader): else: break # for save temp book - item.content = soup.encode() + if soup: + item.content = soup.encode() new_temp_book.add_item(item) name, _ = os.path.splitext(self.epub_name) epub.write_epub(f"{name}_bilingual_temp.epub", new_temp_book, {}) diff --git a/book_maker/loader/txt_loader.py b/book_maker/loader/txt_loader.py index 5a77016..58a2d64 100644 --- a/book_maker/loader/txt_loader.py +++ b/book_maker/loader/txt_loader.py @@ -113,7 +113,7 @@ class TXTBookLoader(BaseBookLoader): def _save_progress(self): try: - with open(self.bin_path, "w") as f: + with open(self.bin_path, "w", encoding="utf-8") as f: f.write("\n".join(self.p_to_save)) except: raise Exception("can not save resume file") diff --git a/book_maker/translator/chatgptapi_translator.py b/book_maker/translator/chatgptapi_translator.py index 1afb205..781c4d8 100644 --- a/book_maker/translator/chatgptapi_translator.py +++ b/book_maker/translator/chatgptapi_translator.py @@ -90,7 +90,7 @@ class ChatGPTAPI(Base): # work well or exception finish by length limit choice = completion["choices"][0] - t_text = choice.get("message").get("content").encode("utf8").decode() + t_text = choice.get("message").get("content", "").encode("utf8").decode() if choice["finish_reason"] == "length": with open("log/long_text.txt", "a") as f: @@ -212,7 +212,6 @@ The total token is too long and cannot be completely translated\n print(result_list[i], file=f) print(file=f) print("=============================", file=f) - print(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>") print( f"bug: {plist_len} paragraphs of text translated into {len(result_list)} paragraphs",