diff --git a/core/handle.py b/core/handle.py index a2bb9a5..f6af0ea 100644 --- a/core/handle.py +++ b/core/handle.py @@ -1,4 +1,4 @@ -from core import internals +from core import internals,const import logging import yaml @@ -53,6 +53,27 @@ def get_config(config_file): return cfg['spotify-downloader'] +def override_config(config_file, parser, raw_args=None, ): + """ """ + config_file = os.path.join(sys.path[0], 'config.yml') + config = merge(default_conf['spotify-downloader'], get_config(config_file)) + + parser.set_defaults(avconv=config['avconv']) + parser.set_defaults(download_only_metadata=config['download-only-metadata']) + parser.set_defaults(dry_run=config['dry-run']) + parser.set_defaults(file_format=config['file-format']) + parser.set_defaults(folder=os.path.relpath(config['folder'], os.getcwd())) + parser.set_defaults(input_ext=config['input-ext']) + parser.set_defaults(log_level=config['log-level']) + parser.set_defaults(manual=config['manual']) + parser.set_defaults(music_videos_only=config['music-videos-only']) + parser.set_defaults(no_metadata=config['no-metadata']) + parser.set_defaults(no_spaces=config['no-spaces']) + parser.set_defaults(output_ext=config['output-ext']) + parser.set_defaults(overwrite=config['overwrite']) + + return parser.parse_args(raw_args) + def get_arguments(raw_args=None, to_group=True, to_merge=True): parser = argparse.ArgumentParser( description='Download and convert songs from Spotify, Youtube etc.', @@ -129,8 +150,16 @@ def get_arguments(raw_args=None, to_group=True, to_merge=True): choices=_LOG_LEVELS_STR, type=str.upper, help='set log verbosity') + parser.add_argument( + '-c', '--config', default=None, + help='Replace with custom config file' + ) parsed = parser.parse_args(raw_args) parsed.log_level = log_leveller(parsed.log_level) + if parsed.config is not None and to_merge: + print("Config file passed") + parsed = override_config(parsed.config,parser) + pass return parsed