Skip to content
This repository was archived by the owner on Apr 27, 2020. It is now read-only.

Commit 4ca6a4b

Browse files
committed
Extract App.download
1 parent 1406815 commit 4ca6a4b

File tree

1 file changed

+35
-28
lines changed

1 file changed

+35
-28
lines changed

Diff for: lib/spotify_to_mp3/app.rb

+35-28
Original file line numberDiff line numberDiff line change
@@ -40,36 +40,43 @@ def run
4040

4141
@logger.info("\n")
4242

43-
if !tracks_to_download.empty?
44-
@logger.info "Downloading tracks..."
45-
tracks_to_download.each_with_index do |track, i|
46-
begin
47-
progress_bar = nil
48-
@grooveshark.download(
49-
track: track,
50-
on_response: Proc.new { |response|
51-
progress_bar = DownloadProgressBar.new(
52-
track: track,
53-
track_number: i.next,
54-
track_size: response['content-length'].to_i,
55-
total_tracks: tracks_to_download.length
56-
)
57-
},
58-
on_body_chunk: Proc.new { |chunk|
59-
progress_bar.progress += chunk.length
60-
}
61-
)
62-
progress_bar.finish
63-
rescue Exception => exception
64-
@logger.error exception.message
65-
end
66-
end
67-
@logger.success "Download complete"
68-
else
69-
@logger.info "Nothing to download"
70-
end
43+
download tracks_to_download
7144
rescue
7245
@logger.error "#{$!}"
7346
end
47+
48+
private
49+
50+
def download(tracks)
51+
if tracks.empty?
52+
@logger.info "Nothing to download"
53+
return
54+
end
55+
56+
@logger.info "Downloading tracks..."
57+
tracks.each_with_index do |track, i|
58+
begin
59+
progress_bar = nil
60+
@grooveshark.download(
61+
track: track,
62+
on_response: Proc.new { |response|
63+
progress_bar = DownloadProgressBar.new(
64+
track: track,
65+
track_number: i.next,
66+
track_size: response['content-length'].to_i,
67+
total_tracks: tracks.length
68+
)
69+
},
70+
on_body_chunk: Proc.new { |chunk|
71+
progress_bar.progress += chunk.length
72+
}
73+
)
74+
progress_bar.finish
75+
rescue Exception => exception
76+
@logger.error exception.message
77+
end
78+
end
79+
@logger.success "Download complete"
80+
end
7481
end
7582
end

0 commit comments

Comments
 (0)