diff --git a/app/connections.py b/app/connections.py index 3b29c06d..6b362ef6 100644 --- a/app/connections.py +++ b/app/connections.py @@ -392,10 +392,10 @@ def download_data(*, settings, download_type=DownloadType.ALL, callback=log, fil def upload_data(*, settings, download_type=DownloadType.ALL, remove_unused=False, - callback=log, done_callback=None, use_http=False, files_filter=None): + callback=log, done_callback=None, use_http=False, files_filter=None, ext_host=None): s_type = settings.setting_type data_path = settings.profile_data_path - host, port, use_ssl = settings.host, settings.http_port, settings.http_use_ssl + host, port, use_ssl = ext_host or settings.host, settings.http_port, settings.http_use_ssl user, password = settings.user, settings.password base_url = f"http{'s' if use_ssl else ''}://{host}:{port}" base = "web" if s_type is SettingsType.ENIGMA_2 else "control" diff --git a/app/ui/main.py b/app/ui/main.py index a0379b9d..8731e56c 100644 --- a/app/ui/main.py +++ b/app/ui/main.py @@ -2045,15 +2045,23 @@ class Application(Gtk.Application): @run_task def upload_data(self, download_type): - try: - profile = self._s_type - opts = self._settings - use_http = profile is SettingsType.ENIGMA_2 and opts.use_http - upload_data(settings=opts, download_type=download_type, remove_unused=True, use_http=use_http) - except Exception as e: - msg = "Uploading data error: {}" - log(msg.format(e), debug=self._settings.debug_mode, fmt_message=msg) - self.show_error_message(str(e)) + opts = self._settings + use_http = self._s_type is SettingsType.ENIGMA_2 and opts.use_http + multiple = len(self._settings.hosts) > 1 + for host in self._settings.hosts: + if multiple: + log(f"##### Uploading data on [{host}] #####") + try: + upload_data(settings=opts, + download_type=download_type, + remove_unused=True, + use_http=use_http, + ext_host=host) + except Exception as e: + msg = "Uploading data error: {}" + log(msg.format(e), debug=self._settings.debug_mode, fmt_message=msg) + if host == self._settings.host: + self.show_error_message(str(e)) def on_data_open(self, action=None, value=None): """ Opening data via "File/Open". """ diff --git a/app/ui/settings_dialog.py b/app/ui/settings_dialog.py index 685ca4d1..db3debfd 100644 --- a/app/ui/settings_dialog.py +++ b/app/ui/settings_dialog.py @@ -373,7 +373,7 @@ class SettingsDialog: self._s_type = SettingsType.ENIGMA_2 if self._enigma_radio_button.get_active() else SettingsType.NEUTRINO_MP self._settings.setting_type = self._s_type - self._settings.host = self._hosts_box.get_active_id() + self._settings.host = self._host_field.get_text() self._settings.hosts = [h[1] for h in self._hosts_box.get_model()] self._settings.port = self._port_field.get_text() self._settings.user = self._login_field.get_text()