diff --git a/app/ftp.py b/app/ftp.py index cf035f8f..a541cb0c 100644 --- a/app/ftp.py +++ b/app/ftp.py @@ -58,8 +58,8 @@ def upload_data(*, properties, download_type=DownloadDataType.ALL, remove_unused data_path = properties["data_dir_path"] host = properties["host"] # telnet - tn = telnet(host=host, user=None if profile is Profile.ENIGMA_2 else "root", password=None, - timeout=5 if profile is Profile.ENIGMA_2 else 1) + tn = telnet(host=host, user=properties.get("telnet_user", "root"), password=properties.get("telnet_password", ""), + timeout=properties.get("telnet_timeout", 5)) next(tn) # terminate enigma or enigma tn.send("init 4") @@ -119,7 +119,7 @@ def send_file(file_name, path, ftp): return ftp.storbinary("STOR " + file_name, f) -def telnet(host, port=23, user=None, password=None, timeout=5): +def telnet(host, port=23, user="", password="", timeout=5): try: tn = Telnet(host=host, port=port, timeout=timeout) except socket.timeout: @@ -127,11 +127,11 @@ def telnet(host, port=23, user=None, password=None, timeout=5): else: time.sleep(1) command = yield - if user is not None: + if user != "": tn.read_until(b"login: ") tn.write(user.encode("utf-8") + b"\n") time.sleep(timeout) - if password is not None: + if password != "": tn.read_until(b"Password: ") tn.write(password.encode("utf-8") + b"\n") time.sleep(timeout) diff --git a/app/ui/dialogs.glade b/app/ui/dialogs.glade index d74e668e..5efb1f79 100644 --- a/app/ui/dialogs.glade +++ b/app/ui/dialogs.glade @@ -223,21 +223,7 @@ dmitry.v.yefremov@gmail.com - - Picons - True - False - True - False - 0 - True - satellites_radio_button - - - False - True - 4 - + @@ -620,9 +606,12 @@ dmitry.v.yefremov@gmail.com - 100 + 1 + 11 + 1 1 10 + 1 False @@ -821,7 +810,6 @@ dmitry.v.yefremov@gmail.com True - False False 2 True @@ -907,8 +895,12 @@ dmitry.v.yefremov@gmail.com True True + Timeout between commands in seconds + 2 alarm-symbolic + number telnet_timeout_adjustment + True 1 diff --git a/app/ui/main_app_window.py b/app/ui/main_app_window.py index 03821477..500a845b 100644 --- a/app/ui/main_app_window.py +++ b/app/ui/main_app_window.py @@ -613,6 +613,7 @@ class MainAppWindow: for v in [view, *args]: v.get_selection().unselect_all() + @run_idle def on_preferences(self, item): response = show_settings_dialog(self.__main_window, self.__options) if response != Gtk.ResponseType.CANCEL: diff --git a/app/ui/settings_dialog.py b/app/ui/settings_dialog.py index 2ba33f99..a2ac9cd6 100644 --- a/app/ui/settings_dialog.py +++ b/app/ui/settings_dialog.py @@ -106,7 +106,7 @@ class SettingsDialog: options["telnet_user"] = self._telnet_login_field.get_text() options["telnet_password"] = self._telnet_password_field.get_text() options["telnet_port"] = self._telnet_port_field.get_text() - options["telnet_timeout"] = self._telnet_timeout_spin_button.get_value() + options["telnet_timeout"] = int(self._telnet_timeout_spin_button.get_value()) options["services_path"] = self._services_field.get_text() options["user_bouquet_path"] = self._user_bouquet_field.get_text() options["satellites_xml_path"] = self._satellites_xml_field.get_text()