Skip to content

Commit

Permalink
Merge pull request #724 from ritiek/handle-keyboardinterrupt-on-file-…
Browse files Browse the repository at this point in the history
…downloads

Don't remove track from file on KeyboardInterrupt
  • Loading branch information
ritiek authored May 19, 2020
2 parents 89735c2 + 19ae8fd commit b13f12f
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 11 deletions.
12 changes: 8 additions & 4 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,28 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
The release dates mentioned follow the format `DD-MM-YYYY`.

## [Unreleased]

## [2.0.4] - 19-05-2020
### Fixed
- Do not remove the currently downloading track from file on `KeyboardInterrupt`
when `--list` is passed. ([@ritiek](https://github.com/ritiek/spotify-downloader)) (#722)
- Failure on invoking spotdl if FFmpeg isn't found. It should now warn about missing
FFmpeg and move ahead without encoding. [@ritiek](https://github.com/ritiek)
FFmpeg and move ahead without encoding. ([@ritiek](https://github.com/ritiek))
(debe7ee9024e2ec65eed9935460c62f4eecd03ea)

## [2.0.3] (Hotfix Release) - 18-05-2020
### Fixed
- Genius would sometimes return invalid lyrics. Retry a few times in such a case.
[@ritiek](https://github.com/ritiek) (29b1f31a2622f749df83c3072c4cbb22615bff95)
([@ritiek](https://github.com/ritiek)) (29b1f31a2622f749df83c3072c4cbb22615bff95)

## [2.0.2] (Hotfix Release) - 18-05-2020
### Fixed
- Skipping tracks with `-m` would crash. [@ritiek](https://github.com/ritiek)
- Skipping tracks with `-m` would crash. ([@ritiek](https://github.com/ritiek))
(bbe43da191093302726ddc9a48f0fa0a55be6fb6)

## [2.0.1] (Hotfix Release) - 18-05-2020
### Fixed
- `-o m4a` would always fail. [@ritiek](https://github.com/ritiek)
- `-o m4a` would always fail. ([@ritiek](https://github.com/ritiek))
(cd5f224e379f3feefc95e338ec50674f976e2e89)

## [2.0.0] - 18-05-2020
Expand Down
17 changes: 11 additions & 6 deletions spotdl/command_line/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,7 @@ def filter_against_skip_file(self, items, skip_file):

def download_tracks_from_file(self, path):
logger.info(
"Checking and removing any duplicate tracks in {}.".format(path)
'Checking and removing any duplicate tracks in "{}".'.format(path)
)
tracks = spotdl.util.readlines_from_nonbinary_file(path)
tracks = self.strip_and_filter_duplicates(tracks)
Expand All @@ -346,12 +346,12 @@ def download_tracks_from_file(self, path):
yt_search_format=self.arguments["search_format"],
yt_manual=self.arguments["manual"]
)
log_track_query = '{position}. Downloading "{track}"'.format(
position=position,
track=track
)
logger.info(log_track_query)
try:
log_track_query = '{position}. Downloading "{track}"'.format(
position=position,
track=track
)
logger.info(log_track_query)
metadata = search_metadata.on_youtube_and_spotify()
self.download_track_from_metadata(metadata)
except (urllib.request.URLError, TypeError, IOError) as e:
Expand All @@ -363,6 +363,11 @@ def download_tracks_from_file(self, path):
tracks.append(track)
except (NoYouTubeVideoFoundError, NoYouTubeVideoMatchError) as e:
logger.error("{err}".format(err=e.args[0]))
except KeyboardInterrupt:
# The current track hasn't been downloaded completely.
# Make sure we continue from here the next the program runs.
tracks.insert(0, track)
raise
else:
if self.arguments["write_successful_file"]:
with open(self.arguments["write_successful_file"], "a") as fout:
Expand Down
2 changes: 1 addition & 1 deletion spotdl/version.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
__version__ = "2.0.3"
__version__ = "2.0.4"

0 comments on commit b13f12f

Please sign in to comment.