[Console] Move migration func out of main

This commit is contained in:
Calum Lind 2023-02-27 13:44:30 +00:00
parent f4f4accd34
commit 1ba7beb7bc
No known key found for this signature in database
GPG Key ID: 90597A687B836BA3
2 changed files with 120 additions and 119 deletions

View File

@ -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

View File

@ -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