Unverified Commit 09d17d83 authored by John's avatar John Committed by GitHub
Browse files

Merge branch 'dmMaze:master' into master

parents ce5729b2 377d418c
Loading
Loading
Loading
Loading
+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
@@ -64,6 +65,7 @@ class TranslatorBase(ModuleParamParser):
    concate_text = True
    cht_require_convert = False
    
    
    def __init__(self,
                 lang_source: str, 
                 lang_target: str,
@@ -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': [
@@ -207,7 +220,8 @@ class GoogleTranslator(TranslatorBase):
                'https://translate.google.com/m'
            ],
            'select': 'https://translate.google.com/m'
        }
        },
        
    }
    
    def _setup_translator(self):
@@ -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
@@ -304,6 +318,7 @@ class CaiyunTranslator(TranslatorBase):
    cht_require_convert = True
    setup_params: Dict = {
        'token': '',
        'delay': '0.0'
    }

    def _setup_translator(self):
@@ -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):
@@ -442,7 +458,8 @@ class YandexTranslator(TranslatorBase):

    concate_text = False
    setup_params: Dict = {
        'api_key': ''
        'api_key': '',
        'delay': '0.0',
    }

    def _setup_translator(self):
+8 −0
Original line number Diff line number Diff line
@@ -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)
@@ -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)
@@ -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):

+2 −2
Original line number Diff line number Diff line
@@ -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):