Bugfix: default config saved is overwritten with passed args

This commit is contained in:
Ritiek Malhotra
2020-05-18 04:10:43 +05:30
parent fec187994b
commit a833f190e1
3 changed files with 8 additions and 5 deletions

View File

@@ -27,7 +27,7 @@ if os.path.isfile(spotdl.config.DEFAULT_CONFIG_FILE):
else: else:
saved_config = {"spotify-downloader": {}} saved_config = {"spotify-downloader": {}}
_CONFIG_BASE = spotdl.util.merge( _CONFIG_BASE = spotdl.util.merge_copy(
spotdl.config.DEFAULT_CONFIGURATION, spotdl.config.DEFAULT_CONFIGURATION,
saved_config, saved_config,
) )
@@ -278,7 +278,7 @@ class ArgumentHandler:
configured_args = parser.parse_args().__dict__ configured_args = parser.parse_args().__dict__
defaults = config_base["spotify-downloader"] defaults = config_base["spotify-downloader"]
args = spotdl.util.merge(defaults, args) args = spotdl.util.merge_copy(defaults, args)
self.parser = parser self.parser = parser
self.args = args self.args = args

View File

@@ -184,7 +184,7 @@ class MetadataSearch:
search_query = spotdl.metadata.format_string(self.yt_search_format, spotify_metadata) search_query = spotdl.metadata.format_string(self.yt_search_format, spotify_metadata)
youtube_video = self._best_on_youtube_search_for_type_spotify(search_query) youtube_video = self._best_on_youtube_search_for_type_spotify(search_query)
youtube_metadata = self.providers["youtube"].from_url(youtube_video["url"]) youtube_metadata = self.providers["youtube"].from_url(youtube_video["url"])
metadata = spotdl.util.merge( metadata = spotdl.util.merge_copy(
youtube_metadata, youtube_metadata,
spotify_metadata spotify_metadata
) )
@@ -195,7 +195,7 @@ class MetadataSearch:
youtube_metadata = self._on_youtube_for_type_youtube(self.track) youtube_metadata = self._on_youtube_for_type_youtube(self.track)
search_query = spotdl.metadata.format_string("{track-name}", youtube_metadata) search_query = spotdl.metadata.format_string("{track-name}", youtube_metadata)
spotify_metadata = self._on_spotify_for_type_query(search_query) spotify_metadata = self._on_spotify_for_type_query(search_query)
metadata = spotdl.util.merge( metadata = spotdl.util.merge_copy(
youtube_metadata, youtube_metadata,
spotify_metadata spotify_metadata
) )
@@ -212,7 +212,7 @@ class MetadataSearch:
) )
spotify_metadata.start() spotify_metadata.start()
youtube_metadata = self._on_youtube_for_type_query(search_query) youtube_metadata = self._on_youtube_for_type_query(search_query)
metadata = spotdl.util.merge( metadata = spotdl.util.merge_copy(
youtube_metadata, youtube_metadata,
spotify_metadata.join() spotify_metadata.join()
) )

View File

@@ -43,6 +43,9 @@ class ThreadWithReturnValue(threading.Thread):
return self._return return self._return
def merge_copy(base, overrider):
return merge(base.copy(), overrider)
def merge(base, overrider): def merge(base, overrider):
""" Override base dict with an overrider dict, recursively. """ """ Override base dict with an overrider dict, recursively. """
for key, value in overrider.items(): for key, value in overrider.items():