From 1ba7beb7bc43a646c70e15c573ab9db7b38ba388 Mon Sep 17 00:00:00 2001 From: Calum Lind Date: Mon, 27 Feb 2023 13:44:30 +0000 Subject: [PATCH] [Console] Move migration func out of main --- deluge/ui/console/main.py | 121 +----------------------------- deluge/ui/console/utils/config.py | 118 +++++++++++++++++++++++++++++ 2 files changed, 120 insertions(+), 119 deletions(-) create mode 100644 deluge/ui/console/utils/config.py diff --git a/deluge/ui/console/main.py b/deluge/ui/console/main.py index ae6f5aef9..106169f0e 100644 --- a/deluge/ui/console/main.py +++ b/deluge/ui/console/main.py @@ -28,6 +28,7 @@ from deluge.ui.console.modes.preferences import Preferences from deluge.ui.console.modes.torrentdetail import TorrentDetail from deluge.ui.console.modes.torrentlist.torrentlist import TorrentList from deluge.ui.console.utils import colors +from deluge.ui.console.utils.config import migrate_1_to_2 from deluge.ui.console.widgets import StatusBars from deluge.ui.coreconfig import CoreConfig from deluge.ui.sessionproxy import SessionProxy @@ -222,7 +223,7 @@ deluge-console.exe "add -p c:\\mytorrents c:\\new.torrent" self.config = ConfigManager( 'console.conf', defaults=DEFAULT_CONSOLE_PREFS, file_version=2 ) - self.config.run_converter((0, 1), 2, self._migrate_config_1_to_2) + self.config.run_converter((0, 1), 2, migrate_1_to_2) self.statusbars = StatusBars() from deluge.ui.console.modes.connectionmanager import ConnectionManager @@ -467,121 +468,3 @@ deluge-console.exe "add -p c:\\mytorrents c:\\new.torrent" self.events.append(s) else: print(colors.strip_colors(s)) - - def _migrate_config_1_to_2(self, config): - """Create better structure by moving most settings out of dict root - and into sub categories. Some keys are also renamed to be consistent - with other UIs. - """ - - def move_key(source, dest, source_key, dest_key=None): - if dest_key is None: - dest_key = source_key - dest[dest_key] = source[source_key] - del source[source_key] - - # These are moved to 'torrentview' sub dict - for k in [ - 'sort_primary', - 'sort_secondary', - 'move_selection', - 'separate_complete', - ]: - move_key(config, config['torrentview'], k) - - # These are moved to 'addtorrents' sub dict - for k in [ - 'show_misc_files', - 'show_hidden_folders', - 'sort_column', - 'reverse_sort', - 'last_path', - ]: - move_key(config, config['addtorrents'], 'addtorrents_%s' % k, dest_key=k) - - # These are moved to 'cmdline' sub dict - for k in [ - 'ignore_duplicate_lines', - 'torrents_per_tab_press', - 'third_tab_lists_all', - ]: - move_key(config, config['cmdline'], k) - - move_key( - config, - config['cmdline'], - 'save_legacy_history', - dest_key='save_command_history', - ) - - # Add key for localization - config['language'] = DEFAULT_CONSOLE_PREFS['language'] - - # Migrate column settings - columns = [ - 'queue', - 'size', - 'state', - 'progress', - 'seeds', - 'peers', - 'downspeed', - 'upspeed', - 'eta', - 'ratio', - 'avail', - 'added', - 'tracker', - 'savepath', - 'downloaded', - 'uploaded', - 'remaining', - 'owner', - 'downloading_time', - 'seeding_time', - 'completed', - 'seeds_peers_ratio', - 'complete_seen', - 'down_limit', - 'up_limit', - 'shared', - 'name', - ] - column_name_mapping = { - 'downspeed': 'download_speed', - 'upspeed': 'upload_speed', - 'added': 'time_added', - 'savepath': 'download_location', - 'completed': 'completed_time', - 'complete_seen': 'last_seen_complete', - 'down_limit': 'max_download_speed', - 'up_limit': 'max_upload_speed', - 'downloading_time': 'active_time', - } - - from deluge.ui.console.modes.torrentlist.torrentview import default_columns - - # These are moved to 'torrentview.columns' sub dict - for k in columns: - column_name = column_name_mapping.get(k, k) - config['torrentview']['columns'][column_name] = {} - if k == 'name': - config['torrentview']['columns'][column_name]['visible'] = True - else: - move_key( - config, - config['torrentview']['columns'][column_name], - 'show_%s' % k, - dest_key='visible', - ) - move_key( - config, - config['torrentview']['columns'][column_name], - '%s_width' % k, - dest_key='width', - ) - config['torrentview']['columns'][column_name]['order'] = default_columns[ - column_name - ]['order'] - - return config diff --git a/deluge/ui/console/utils/config.py b/deluge/ui/console/utils/config.py new file mode 100644 index 000000000..debb52a50 --- /dev/null +++ b/deluge/ui/console/utils/config.py @@ -0,0 +1,118 @@ +def migrate_1_to_2(config): + """Create better structure by moving most settings out of dict root + and into sub categories. Some keys are also renamed to be consistent + with other UIs. + """ + + def move_key(source, dest, source_key, dest_key=None): + if dest_key is None: + dest_key = source_key + + dest[dest_key] = source[source_key] + del source[source_key] + + # These are moved to 'torrentview' sub dict + for k in [ + 'sort_primary', + 'sort_secondary', + 'move_selection', + 'separate_complete', + ]: + move_key(config, config['torrentview'], k) + + # These are moved to 'addtorrents' sub dict + for k in [ + 'show_misc_files', + 'show_hidden_folders', + 'sort_column', + 'reverse_sort', + 'last_path', + ]: + move_key(config, config['addtorrents'], 'addtorrents_%s' % k, dest_key=k) + + # These are moved to 'cmdline' sub dict + for k in [ + 'ignore_duplicate_lines', + 'torrents_per_tab_press', + 'third_tab_lists_all', + ]: + move_key(config, config['cmdline'], k) + + move_key( + config, + config['cmdline'], + 'save_legacy_history', + dest_key='save_command_history', + ) + + # Add key for localization + config['language'] = '' + + # Migrate column settings + columns = [ + 'queue', + 'size', + 'state', + 'progress', + 'seeds', + 'peers', + 'downspeed', + 'upspeed', + 'eta', + 'ratio', + 'avail', + 'added', + 'tracker', + 'savepath', + 'downloaded', + 'uploaded', + 'remaining', + 'owner', + 'downloading_time', + 'seeding_time', + 'completed', + 'seeds_peers_ratio', + 'complete_seen', + 'down_limit', + 'up_limit', + 'shared', + 'name', + ] + column_name_mapping = { + 'downspeed': 'download_speed', + 'upspeed': 'upload_speed', + 'added': 'time_added', + 'savepath': 'download_location', + 'completed': 'completed_time', + 'complete_seen': 'last_seen_complete', + 'down_limit': 'max_download_speed', + 'up_limit': 'max_upload_speed', + 'downloading_time': 'active_time', + } + + from deluge.ui.console.modes.torrentlist.torrentview import default_columns + + # These are moved to 'torrentview.columns' sub dict + for k in columns: + column_name = column_name_mapping.get(k, k) + config['torrentview']['columns'][column_name] = {} + if k == 'name': + config['torrentview']['columns'][column_name]['visible'] = True + else: + move_key( + config, + config['torrentview']['columns'][column_name], + 'show_%s' % k, + dest_key='visible', + ) + move_key( + config, + config['torrentview']['columns'][column_name], + '%s_width' % k, + dest_key='width', + ) + config['torrentview']['columns'][column_name]['order'] = default_columns[ + column_name + ]['order'] + + return config