Loading ballontranslator/dl/translators/__init__.py +21 −4 Original line number Diff line number Diff line import urllib.request from urllib3.exceptions import ConnectTimeoutError from ordered_set import OrderedSet from typing import Dict, List, Union, Set, Callable import time, requests, re, uuid, base64, hmac, functools, json, deepl Loading Loading @@ -64,6 +65,7 @@ class TranslatorBase(ModuleParamParser): concate_text = True cht_require_convert = False def __init__(self, lang_source: str, lang_target: str, Loading Loading @@ -194,12 +196,23 @@ class TranslatorBase(ModuleParamParser): else: return text def delay(self) -> float: if 'delay' in self.setup_params: delay = self.setup_params['delay'] if delay: try: return float(delay) except: pass return 0. @register_translator('google') class GoogleTranslator(TranslatorBase): concate_text = True setup_params: Dict = { 'delay': '0.0', 'url': { 'type': 'selector', 'options': [ Loading @@ -207,7 +220,8 @@ class GoogleTranslator(TranslatorBase): 'https://translate.google.com/m' ], 'select': 'https://translate.google.com/m' } }, } def _setup_translator(self): Loading Loading @@ -247,7 +261,7 @@ class GoogleTranslator(TranslatorBase): class PapagoTranslator(TranslatorBase): concate_text = True setup_params: Dict = None setup_params: Dict = {'delay': '0.0'} papagoVer: str = None # https://github.com/zyddnys/manga-image-translator/blob/main/translators/papago.py Loading Loading @@ -304,6 +318,7 @@ class CaiyunTranslator(TranslatorBase): cht_require_convert = True setup_params: Dict = { 'token': '', 'delay': '0.0' } def _setup_translator(self): Loading Loading @@ -344,7 +359,8 @@ class DeeplTranslator(TranslatorBase): concate_text = False cht_require_convert = True setup_params: Dict = { 'api_key': '' 'api_key': '', 'delay': '0.0', } def _setup_translator(self): Loading Loading @@ -442,7 +458,8 @@ class YandexTranslator(TranslatorBase): concate_text = False setup_params: Dict = { 'api_key': '' 'api_key': '', 'delay': '0.0', } def _setup_translator(self): Loading ballontranslator/ui/dl_manager.py +8 −0 Original line number Diff line number Diff line Loading @@ -219,6 +219,8 @@ class TranslateThread(ModuleThread): def _run_translate_pipeline(self): num_pages = len(self.imgtrans_proj.pages) delay = self.translator.delay() while not self.pipeline_finished(): if len(self.pipeline_pagekey_queue) == 0: time.sleep(0.1) Loading @@ -229,6 +231,9 @@ class TranslateThread(ModuleThread): try: self._translate_page(self.imgtrans_proj.pages, page_key, raise_exception=True, emit_finished=False) except Exception as e: # TODO: allowing retry/skip/terminate msg = self.tr('Translation Failed.') if isinstance(e, MissingTranslatorParams): msg = msg + '\n' + str(e) + self.tr(' is required for ' + self.translator.name) Loading @@ -243,6 +248,9 @@ class TranslateThread(ModuleThread): self.finished_counter += 1 self.progress_changed.emit(self.finished_counter) if not self.pipeline_finished() and delay > 0: time.sleep(delay) class ImgtransThread(QThread): Loading ballontranslator/utils/imgproc_utils.py +2 −2 Original line number Diff line number Diff line Loading @@ -180,8 +180,8 @@ def enlarge_window(rect, im_w, im_h, ratio=2.5, aspect_ratio=1.0) -> List: delta_w = min(x1, im_w - x2, delta_w) delta = min(y1, im_h - y2, delta) rect = np.array([x1-delta_w, y1-delta, x2+delta_w, y2+delta], dtype=np.int64) rect[::2] = np.clip(rect[::2], 0, im_w - 1) rect[1::2] = np.clip(rect[1::2], 0, im_h - 1) rect[::2] = np.clip(rect[::2], 0, im_w) rect[1::2] = np.clip(rect[1::2], 0, im_h) return rect.tolist() def draw_connected_labels(num_labels, labels, stats, centroids, names="draw_connected_labels", skip_background=True): Loading Loading
ballontranslator/dl/translators/__init__.py +21 −4 Original line number Diff line number Diff line import urllib.request from urllib3.exceptions import ConnectTimeoutError from ordered_set import OrderedSet from typing import Dict, List, Union, Set, Callable import time, requests, re, uuid, base64, hmac, functools, json, deepl Loading Loading @@ -64,6 +65,7 @@ class TranslatorBase(ModuleParamParser): concate_text = True cht_require_convert = False def __init__(self, lang_source: str, lang_target: str, Loading Loading @@ -194,12 +196,23 @@ class TranslatorBase(ModuleParamParser): else: return text def delay(self) -> float: if 'delay' in self.setup_params: delay = self.setup_params['delay'] if delay: try: return float(delay) except: pass return 0. @register_translator('google') class GoogleTranslator(TranslatorBase): concate_text = True setup_params: Dict = { 'delay': '0.0', 'url': { 'type': 'selector', 'options': [ Loading @@ -207,7 +220,8 @@ class GoogleTranslator(TranslatorBase): 'https://translate.google.com/m' ], 'select': 'https://translate.google.com/m' } }, } def _setup_translator(self): Loading Loading @@ -247,7 +261,7 @@ class GoogleTranslator(TranslatorBase): class PapagoTranslator(TranslatorBase): concate_text = True setup_params: Dict = None setup_params: Dict = {'delay': '0.0'} papagoVer: str = None # https://github.com/zyddnys/manga-image-translator/blob/main/translators/papago.py Loading Loading @@ -304,6 +318,7 @@ class CaiyunTranslator(TranslatorBase): cht_require_convert = True setup_params: Dict = { 'token': '', 'delay': '0.0' } def _setup_translator(self): Loading Loading @@ -344,7 +359,8 @@ class DeeplTranslator(TranslatorBase): concate_text = False cht_require_convert = True setup_params: Dict = { 'api_key': '' 'api_key': '', 'delay': '0.0', } def _setup_translator(self): Loading Loading @@ -442,7 +458,8 @@ class YandexTranslator(TranslatorBase): concate_text = False setup_params: Dict = { 'api_key': '' 'api_key': '', 'delay': '0.0', } def _setup_translator(self): Loading
ballontranslator/ui/dl_manager.py +8 −0 Original line number Diff line number Diff line Loading @@ -219,6 +219,8 @@ class TranslateThread(ModuleThread): def _run_translate_pipeline(self): num_pages = len(self.imgtrans_proj.pages) delay = self.translator.delay() while not self.pipeline_finished(): if len(self.pipeline_pagekey_queue) == 0: time.sleep(0.1) Loading @@ -229,6 +231,9 @@ class TranslateThread(ModuleThread): try: self._translate_page(self.imgtrans_proj.pages, page_key, raise_exception=True, emit_finished=False) except Exception as e: # TODO: allowing retry/skip/terminate msg = self.tr('Translation Failed.') if isinstance(e, MissingTranslatorParams): msg = msg + '\n' + str(e) + self.tr(' is required for ' + self.translator.name) Loading @@ -243,6 +248,9 @@ class TranslateThread(ModuleThread): self.finished_counter += 1 self.progress_changed.emit(self.finished_counter) if not self.pipeline_finished() and delay > 0: time.sleep(delay) class ImgtransThread(QThread): Loading
ballontranslator/utils/imgproc_utils.py +2 −2 Original line number Diff line number Diff line Loading @@ -180,8 +180,8 @@ def enlarge_window(rect, im_w, im_h, ratio=2.5, aspect_ratio=1.0) -> List: delta_w = min(x1, im_w - x2, delta_w) delta = min(y1, im_h - y2, delta) rect = np.array([x1-delta_w, y1-delta, x2+delta_w, y2+delta], dtype=np.int64) rect[::2] = np.clip(rect[::2], 0, im_w - 1) rect[1::2] = np.clip(rect[1::2], 0, im_h - 1) rect[::2] = np.clip(rect[::2], 0, im_w) rect[1::2] = np.clip(rect[1::2], 0, im_h) return rect.tolist() def draw_connected_labels(num_labels, labels, stats, centroids, names="draw_connected_labels", skip_background=True): Loading