diff --git a/katrain/core/constants.py b/katrain/core/constants.py index 7eaf22e..19791be 100644 --- a/katrain/core/constants.py +++ b/katrain/core/constants.py @@ -1,4 +1,4 @@ -VERSION = "1.2.1" +VERSION = "1.2.2" HOMEPAGE = "https://github.com/sanderland/katrain" CONFIG_MIN_VERSION = "1.2.0" diff --git a/katrain/gui/popups.py b/katrain/gui/popups.py index 5242f48..f5b6567 100644 --- a/katrain/gui/popups.py +++ b/katrain/gui/popups.py @@ -361,6 +361,12 @@ class ConfigPopup(QuickConfigGui): self.katrain.log(f"Download of {model} model complete, but could not move file: {e}", OUTPUT_ERROR) self.check_models() + for c in self.download_progress_box.children: + print(c,c.request) + if isinstance(c,ProgressLoader) and c.request: + c.request.cancel() + self.download_progress_box.clear_widgets() + downloading = False for name, url in self.MODELS.items(): filename = os.path.split(url)[1] if not any(os.path.split(f)[1] == filename for f in self.model_files.values): @@ -374,11 +380,17 @@ class ConfigPopup(QuickConfigGui): download_complete=lambda req, tmp=savepath_tmp, path=savepath, model=name: download_complete( req, tmp, path, model ), - download_redirected=lambda req: self.katrain.log( - f"Download {name} redirected {req.resp_headers}", OUTPUT_DEBUG + download_redirected=lambda req,mname=name: self.katrain.log( + f"Download {mname} redirected {req.resp_headers}", OUTPUT_DEBUG + ), + download_error=lambda req,mname=name: self.katrain.log( + f"Download of {mname} failed or cancelled {req.resp_headers}", OUTPUT_ERROR ), ) progress.start(self.download_progress_box) + downloading = True + if not downloading: + self.download_progress_box.add_widget(Label(text=i18n._("All models downloaded"))) def update_config(self, save_to_file=True): updated = super().update_config(save_to_file=save_to_file) diff --git a/katrain/gui/widgets/progress_loader.py b/katrain/gui/widgets/progress_loader.py index fe2d6df..b3d34ea 100644 --- a/katrain/gui/widgets/progress_loader.py +++ b/katrain/gui/widgets/progress_loader.py @@ -47,6 +47,8 @@ class ProgressLoader(BoxLayout): download_complete = ObjectProperty() """Function, called after a successful file upload.""" + download_error = ObjectProperty() + """Function, called after an error in downloading.""" download_redirected = ObjectProperty() """Function, called after a redirect event.""" @@ -56,6 +58,7 @@ class ProgressLoader(BoxLayout): def __init__(self, **kwargs): super().__init__(**kwargs) self.root_instance = None + self.request = None def start(self, root_instance): self.root_instance = root_instance @@ -81,12 +84,14 @@ class ProgressLoader(BoxLayout): file_path=path, chunk_size=102400, on_progress=self.update_progress, - on_success=self.on_success, - on_redirect=self.redirected, - on_error=self.download_error, + on_success=self.handle_success, + on_redirect=self.handle_redirect, + on_error=self.handle_error, + on_failure=self.handle_error, + on_cancel=self.handle_error, ) - def redirected(self, request, *_args): + def handle_redirect(self, request, *_args): new_url = request.resp_headers.get("location") if new_url: self.download_url = new_url @@ -94,8 +99,13 @@ class ProgressLoader(BoxLayout): if self.download_redirected: self.download_redirected(request) - def download_error(self, request, *_args): - pass + def cleanup(self): + self.root_instance.remove_widget(self) + + def handle_error(self, request, *_args): + self.cleanup() + if self.download_error: + self.download_error(request) def update_progress(self, request, current_size, total_size): if total_size < 1e4: @@ -103,7 +113,7 @@ class ProgressLoader(BoxLayout): percent = current_size * 100 // max(total_size, 1) self.label_downloading_text = self.downloading_text.format(percent) - def on_success(self, request, result): - self.root_instance.remove_widget(self) + def handle_success(self, request, result): + self.cleanup() if self.download_complete: self.download_complete(request) diff --git a/katrain/i18n/locales/cn/LC_MESSAGES/katrain.mo b/katrain/i18n/locales/cn/LC_MESSAGES/katrain.mo index b095193..4b3f125 100644 Binary files a/katrain/i18n/locales/cn/LC_MESSAGES/katrain.mo and b/katrain/i18n/locales/cn/LC_MESSAGES/katrain.mo differ diff --git a/katrain/i18n/locales/cn/LC_MESSAGES/katrain.po b/katrain/i18n/locales/cn/LC_MESSAGES/katrain.po index e60c8f2..13896bd 100644 --- a/katrain/i18n/locales/cn/LC_MESSAGES/katrain.po +++ b/katrain/i18n/locales/cn/LC_MESSAGES/katrain.po @@ -564,3 +564,7 @@ msgstr "{num} available model(s) found" #. TODO msgid "download models button" msgstr "Download Models" + +#. TODO +msgid "All models downloaded" +msgstr "All available models already downloaded" diff --git a/katrain/i18n/locales/de/LC_MESSAGES/katrain.mo b/katrain/i18n/locales/de/LC_MESSAGES/katrain.mo index 2e85920..4418961 100644 Binary files a/katrain/i18n/locales/de/LC_MESSAGES/katrain.mo and b/katrain/i18n/locales/de/LC_MESSAGES/katrain.mo differ diff --git a/katrain/i18n/locales/de/LC_MESSAGES/katrain.po b/katrain/i18n/locales/de/LC_MESSAGES/katrain.po index 1628966..43ce14d 100644 --- a/katrain/i18n/locales/de/LC_MESSAGES/katrain.po +++ b/katrain/i18n/locales/de/LC_MESSAGES/katrain.po @@ -607,3 +607,7 @@ msgstr "{num} available model(s) found" #. TODO msgid "download models button" msgstr "Download Models" + +#. TODO +msgid "All models downloaded" +msgstr "All available models already downloaded" diff --git a/katrain/i18n/locales/en/LC_MESSAGES/katrain.mo b/katrain/i18n/locales/en/LC_MESSAGES/katrain.mo index b0b6f91..1f498b1 100644 Binary files a/katrain/i18n/locales/en/LC_MESSAGES/katrain.mo and b/katrain/i18n/locales/en/LC_MESSAGES/katrain.mo differ diff --git a/katrain/i18n/locales/en/LC_MESSAGES/katrain.po b/katrain/i18n/locales/en/LC_MESSAGES/katrain.po index 2cf712e..e57e440 100644 --- a/katrain/i18n/locales/en/LC_MESSAGES/katrain.po +++ b/katrain/i18n/locales/en/LC_MESSAGES/katrain.po @@ -598,3 +598,6 @@ msgstr "Download Models" msgid "models available" msgstr "{num} available model(s) found" + +msgid "All models downloaded" +msgstr "All available models already downloaded" diff --git a/katrain/i18n/locales/es/LC_MESSAGES/katrain.mo b/katrain/i18n/locales/es/LC_MESSAGES/katrain.mo index d5d70b5..cca8524 100644 Binary files a/katrain/i18n/locales/es/LC_MESSAGES/katrain.mo and b/katrain/i18n/locales/es/LC_MESSAGES/katrain.mo differ diff --git a/katrain/i18n/locales/es/LC_MESSAGES/katrain.po b/katrain/i18n/locales/es/LC_MESSAGES/katrain.po index 0385a0a..94095e6 100644 --- a/katrain/i18n/locales/es/LC_MESSAGES/katrain.po +++ b/katrain/i18n/locales/es/LC_MESSAGES/katrain.po @@ -602,3 +602,7 @@ msgstr "{num} available model(s) found" #. TODO msgid "download models button" msgstr "Download Models" + +#. TODO +msgid "All models downloaded" +msgstr "All available models already downloaded" diff --git a/katrain/i18n/locales/fr/LC_MESSAGES/katrain.mo b/katrain/i18n/locales/fr/LC_MESSAGES/katrain.mo index d5c73b3..7cb8fdb 100644 Binary files a/katrain/i18n/locales/fr/LC_MESSAGES/katrain.mo and b/katrain/i18n/locales/fr/LC_MESSAGES/katrain.mo differ diff --git a/katrain/i18n/locales/fr/LC_MESSAGES/katrain.po b/katrain/i18n/locales/fr/LC_MESSAGES/katrain.po index 282b0a2..26a8e68 100644 --- a/katrain/i18n/locales/fr/LC_MESSAGES/katrain.po +++ b/katrain/i18n/locales/fr/LC_MESSAGES/katrain.po @@ -641,3 +641,7 @@ msgstr "{num} available model(s) found" #. TODO msgid "download models button" msgstr "Download Models" + +#. TODO +msgid "All models downloaded" +msgstr "All available models already downloaded" diff --git a/katrain/i18n/locales/ko/LC_MESSAGES/katrain.mo b/katrain/i18n/locales/ko/LC_MESSAGES/katrain.mo index e564fc0..f055540 100644 Binary files a/katrain/i18n/locales/ko/LC_MESSAGES/katrain.mo and b/katrain/i18n/locales/ko/LC_MESSAGES/katrain.mo differ diff --git a/katrain/i18n/locales/ko/LC_MESSAGES/katrain.po b/katrain/i18n/locales/ko/LC_MESSAGES/katrain.po index 9a215c3..5230335 100644 --- a/katrain/i18n/locales/ko/LC_MESSAGES/katrain.po +++ b/katrain/i18n/locales/ko/LC_MESSAGES/katrain.po @@ -579,3 +579,7 @@ msgstr "{num} available model(s) found" #. TODO msgid "download models button" msgstr "Download Models" + +#. TODO +msgid "All models downloaded" +msgstr "All available models already downloaded" diff --git a/katrain/i18n/locales/ru/LC_MESSAGES/katrain.mo b/katrain/i18n/locales/ru/LC_MESSAGES/katrain.mo index bf7e5f2..04e099c 100644 Binary files a/katrain/i18n/locales/ru/LC_MESSAGES/katrain.mo and b/katrain/i18n/locales/ru/LC_MESSAGES/katrain.mo differ diff --git a/katrain/i18n/locales/ru/LC_MESSAGES/katrain.po b/katrain/i18n/locales/ru/LC_MESSAGES/katrain.po index 6cb2dfa..3869eda 100644 --- a/katrain/i18n/locales/ru/LC_MESSAGES/katrain.po +++ b/katrain/i18n/locales/ru/LC_MESSAGES/katrain.po @@ -604,3 +604,7 @@ msgstr "{num} available model(s) found" #. TODO msgid "download models button" msgstr "Download Models" + +#. TODO +msgid "All models downloaded" +msgstr "All available models already downloaded"