mirror of
				https://github.com/KevinMidboe/spotify-downloader.git
				synced 2025-10-29 18:00:15 +00:00 
			
		
		
		
	Compare commits
	
		
			6 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 2290167af4 | |||
| 
						 | 
					252d945996 | ||
| 
						 | 
					d53a6ea471 | ||
| 
						 | 
					c1b3949edb | ||
| 
						 | 
					6288e3c6e5 | ||
| 
						 | 
					2aa7dce4a4 | 
							
								
								
									
										13
									
								
								CHANGES.md
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								CHANGES.md
									
									
									
									
									
								
							@@ -8,6 +8,19 @@ The release dates mentioned follow the format `DD-MM-YYYY`.
 | 
			
		||||
 | 
			
		||||
## [Unreleased]
 | 
			
		||||
 | 
			
		||||
## [2.0.5] - 20-05-2020
 | 
			
		||||
### Fixed
 | 
			
		||||
- In some cases when using `-f` to create sub-directories from metadata, where the
 | 
			
		||||
  full slugified download filename and the non-slugified download directory happen
 | 
			
		||||
  to differ, the download would fail. The download directory will now be derived from
 | 
			
		||||
  filename itself so that the sub-directory name always overlaps.
 | 
			
		||||
  ([@ritiek](https://github.com/ritiek/spotify-downloader))
 | 
			
		||||
  (2aa7dce4a42feb5cd3ceb9324e58da524cdb4b6f)
 | 
			
		||||
 | 
			
		||||
### Changed
 | 
			
		||||
- Disable unneeded logs from `chardet`. ([@ritiek](https://github.com/ritiek))
 | 
			
		||||
  (c1b3949edb943cc21a63c34d6a01ed59e9b6536d)
 | 
			
		||||
 | 
			
		||||
## [2.0.4] - 19-05-2020
 | 
			
		||||
### Fixed
 | 
			
		||||
- Do not remove the currently downloading track from file on `KeyboardInterrupt`
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@ 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"):
 | 
			
		||||
for module in ("chardet", "urllib3", "spotipy", "pytube"):
 | 
			
		||||
    logging.getLogger(module).setLevel(logging.CRITICAL)
 | 
			
		||||
 | 
			
		||||
coloredlogs.DEFAULT_FIELD_STYLES = {
 | 
			
		||||
 
 | 
			
		||||
@@ -261,16 +261,7 @@ class Spotdl:
 | 
			
		||||
        if not self.arguments["no_metadata"]:
 | 
			
		||||
            metadata["lyrics"].start()
 | 
			
		||||
 | 
			
		||||
        filter_space_chars = self.output_filename_filter(not self.arguments["no_spaces"])
 | 
			
		||||
        directory = os.path.dirname(
 | 
			
		||||
            spotdl.metadata.format_string(
 | 
			
		||||
                self.arguments["output_file"],
 | 
			
		||||
                metadata,
 | 
			
		||||
                output_extension=output_extension,
 | 
			
		||||
                sanitizer=filter_space_chars
 | 
			
		||||
            )
 | 
			
		||||
        )
 | 
			
		||||
        os.makedirs(directory or ".", exist_ok=True)
 | 
			
		||||
        os.makedirs(os.path.dirname(filename) or ".", exist_ok=True)
 | 
			
		||||
 | 
			
		||||
        logger.info('Downloading to "{filename}"'.format(filename=filename))
 | 
			
		||||
        if self.arguments["no_encode"]:
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,7 @@ from spotdl.authorize.services import AuthorizeSpotify
 | 
			
		||||
import spotdl.util
 | 
			
		||||
 | 
			
		||||
import sys
 | 
			
		||||
import spotipy
 | 
			
		||||
 | 
			
		||||
import logging
 | 
			
		||||
logger = logging.getLogger(__name__)
 | 
			
		||||
 
 | 
			
		||||
@@ -13,6 +13,36 @@ def directory_fixture(tmpdir_factory):
 | 
			
		||||
    return dir_path
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.mark.parametrize("value", [
 | 
			
		||||
    5,
 | 
			
		||||
    "string",
 | 
			
		||||
    {"a": 1, "b": 2},
 | 
			
		||||
    (10, 20, 30, "string"),
 | 
			
		||||
    [2, 4, "sample"]
 | 
			
		||||
])
 | 
			
		||||
def test_thread_with_return_value(value):
 | 
			
		||||
    returner = lambda x: x
 | 
			
		||||
    thread = spotdl.util.ThreadWithReturnValue(
 | 
			
		||||
        target=returner,
 | 
			
		||||
        args=(value,)
 | 
			
		||||
    )
 | 
			
		||||
    thread.start()
 | 
			
		||||
    assert value == thread.join()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.mark.parametrize("track, track_type", [
 | 
			
		||||
  ("https://open.spotify.com/track/3SipFlNddvL0XNZRLXvdZD", "spotify"),
 | 
			
		||||
  ("spotify:track:3SipFlNddvL0XNZRLXvdZD", "spotify"),
 | 
			
		||||
  ("3SipFlNddvL0XNZRLXvdZD", "spotify"),
 | 
			
		||||
  ("https://www.youtube.com/watch?v=oMiNsd176NM", "youtube"),
 | 
			
		||||
  ("oMiNsd176NM", "youtube"),
 | 
			
		||||
  ("kodaline - saving grace", "query"),
 | 
			
		||||
  ("or anything else", "query"),
 | 
			
		||||
])
 | 
			
		||||
def test_track_type(track, track_type):
 | 
			
		||||
    assert spotdl.util.track_type(track) == track_type
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.mark.parametrize("str_duration, sec_duration", [
 | 
			
		||||
    ("0:23", 23),
 | 
			
		||||
	("0:45", 45),
 | 
			
		||||
 
 | 
			
		||||
@@ -1,2 +1,2 @@
 | 
			
		||||
__version__ = "2.0.4"
 | 
			
		||||
__version__ = "2.0.5"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user