mirror of
				https://github.com/KevinMidboe/spotify-downloader.git
				synced 2025-10-29 18:00:15 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import logging
 | |
| import coloredlogs
 | |
| 
 | |
| import sys
 | |
| 
 | |
| from spotdl.command_line.lib import Spotdl
 | |
| from spotdl.command_line.arguments import get_arguments
 | |
| from spotdl.command_line.exceptions import ArgumentError
 | |
| 
 | |
| # hardcode loglevel for dependencies so that they do not spew generic
 | |
| # log messages along with spotdl.
 | |
| for module in ("urllib3", "spotipy", "pytube"):
 | |
|     logging.getLogger(module).setLevel(logging.CRITICAL)
 | |
| 
 | |
| coloredlogs.DEFAULT_FIELD_STYLES = {
 | |
|     "levelname": {"bold": True, "color": "yellow"},
 | |
|     "name": {"color": "blue"},
 | |
|     "lineno": {"color": "magenta"},
 | |
| }
 | |
| 
 | |
| 
 | |
| def set_logger(level):
 | |
|     if level == logging.DEBUG:
 | |
|         fmt = "%(levelname)s:%(name)s:%(lineno)d:\n%(message)s\n"
 | |
|     else:
 | |
|         fmt = "%(levelname)s: %(message)s"
 | |
|     logging.basicConfig(format=fmt, level=level)
 | |
|     logger = logging.getLogger(name=__name__)
 | |
|     coloredlogs.install(level=level, fmt=fmt, logger=logger)
 | |
|     return logger
 | |
| 
 | |
| 
 | |
| def main():
 | |
|     try:
 | |
|         argument_handler = get_arguments()
 | |
|     except ArgumentError as e:
 | |
|         logger = set_logger(logging.INFO)
 | |
|         logger.info(e.args[0])
 | |
|         sys.exit(5)
 | |
| 
 | |
|     logging_level = argument_handler.get_logging_level()
 | |
|     print(logging_level)
 | |
|     logger = set_logger(logging_level)
 | |
|     try:
 | |
|         spotdl = Spotdl(argument_handler)
 | |
|     except ArgumentError as e:
 | |
|         argument_handler.parser.error(e.args[0])
 | |
|     try:
 | |
|         spotdl.match_arguments()
 | |
|     except KeyboardInterrupt as e:
 | |
|         print("", file=sys.stderr)
 | |
|         logger.exception(e)
 | |
|         sys.exit(2)
 | |
| 
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     main()
 | |
| 
 |