soundcloud_downloader 0.0.9 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 878d4fcd689d3c7ba956aeb8e8dca35322e566a7
4
- data.tar.gz: 59386055ec0875408c666ae3aebd33f343fe4a7e
3
+ metadata.gz: 583a92d287b6ab514855671337e83b7bf5b1961b
4
+ data.tar.gz: acca92e3fdf28abeb911e30519d5a4cb4eb3d438
5
5
  SHA512:
6
- metadata.gz: f432cef456c27df27d4dcf4c9bc2f5963359db4b05c352fa1453c69cc2d4d738e68126002b1b70335145922a6fce21890ce716ec8644cf1e7999cde124ca1acb
7
- data.tar.gz: 46b4df4b25e4766a2beff5e32bd3c6ba38544e873bef85abf6000d4b9678bd9786e50cbc72db215ed1479af13ded750b4bae418a16a72a3f4b093e4b05be5192
6
+ metadata.gz: 04f243309166576e7af0057eecb4e9bda372e2707ed9ac93cf9a4e207b196f4fcaac5521719a7737e8bc63e8f720909b00de18203ffe7f6ecf8dafe32c701f93
7
+ data.tar.gz: 2bc3b860d01555ac5f2f34a45a5d43db6cc44426f8e639e68dbe723c5b7d8310c13337c5ba00b819d830a94c9569a03eb1c2b2a396578c4cc9e86d9f45a418d9
@@ -1,6 +1,28 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  require 'soundcloud_downloader'
4
+ require 'optparse'
4
5
 
5
- song = Song.new(ARGV[0])
6
- song.download
6
+ options = {}
7
+ OptionParser.new do |opts|
8
+ opts.banner = "Usage: soundcloud-downloader <URL> [OPTIONS]"
9
+
10
+ opts.on("-o", "--out [filename]",
11
+ "Filename for the MP3, optional") do |t|
12
+ options[:filename] = t
13
+ end
14
+ opts.on("-f", "--folder [folder]",
15
+ "Folder to save the MP3 to, optional") do |t|
16
+ options[:folder] = t
17
+ end
18
+ opts.on_tail("-v", "--version", "Show version") do
19
+ puts "Version: #{SoundcloudDownloader::VERSION}"
20
+ exit
21
+ end
22
+
23
+ end.parse!
24
+
25
+ url = ARGV[0]
26
+
27
+ song = Song.new(url)
28
+ song.download(options[:filename], options[:folder])
@@ -12,16 +12,20 @@ class Song
12
12
  @stream_url ||= get_stream_url
13
13
  end
14
14
 
15
- def download (file = "#{@name}.mp3")
15
+ def download (file = "#{@name}.mp3", folder = "./")
16
+ raise ArgumentError, "Invalid folder" if not File.directory?(folder)
17
+ raise ArgumentError, "Cannot write to this folder" if not File.writable?(folder)
18
+ raise ArgumentError, "File must have .mp3 extension" if File.extname(file) != ".mp3"
16
19
  streamer = lambda do |chunk, remaining_bytes, total_bytes|
17
20
  file.write(chunk)
18
21
  remaining = ((remaining_bytes.to_f / total_bytes) * 100).to_i
19
22
  STDOUT.flush
20
23
  print "\rRemaining: #{remaining}%"
21
24
  end
22
- file = open("#{file}", 'wb')
25
+ path = File.join(folder,File.basename(file))
26
+ file = open(path, 'wb')
23
27
  Excon.get(@stream_url, :response_block => streamer)
24
- puts "\r\nComplete!"
28
+ puts "\r\nSaved to #{File.realpath(path)}!"
25
29
  file.close
26
30
  end
27
31
 
@@ -1,3 +1,3 @@
1
1
  module SoundcloudDownloader
2
- VERSION = "0.0.9"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
11
11
  spec.summary = %q{SoundCloud downloader}
12
12
  spec.description = %q{Downloads songs from SoundCloud to your
13
13
  computer as MP3 files}
14
- spec.homepage = "https://gitlab.com/u/mixu"
14
+ spec.homepage = "https://gitlab.com/mixu/soundcloud-downloader"
15
15
  spec.license = "MIT"
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: soundcloud_downloader
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mico Piira
@@ -84,7 +84,7 @@ files:
84
84
  - lib/soundcloud_downloader/song.rb
85
85
  - lib/soundcloud_downloader/version.rb
86
86
  - soundcloud_downloader.gemspec
87
- homepage: https://gitlab.com/u/mixu
87
+ homepage: https://gitlab.com/mixu/soundcloud-downloader
88
88
  licenses:
89
89
  - MIT
90
90
  metadata: {}