step_sequencer 1.1.2 → 1.1.3

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: 94104352407b7684c04a9278c4c9aad42f49ea85
4
- data.tar.gz: 727f3e26e528d37a6375cf6b7a069394860cfd0f
3
+ metadata.gz: 7bcdfb6761dadd8db2aac714ae3205070cfd1953
4
+ data.tar.gz: 6b91169ee39afdc44980f7bea1daebc8f2af308c
5
5
  SHA512:
6
- metadata.gz: 144301d796c98f8b86ea5b4a1bbbbca1f1b0c7182941b3562bd32b312bf08864d3d34494931d4ab6ef664e4654fffcacdfc2d4e12029dff9d4ed8a3f3eba1304
7
- data.tar.gz: d6600044f6a2e6710d81754809f28690b561f8598d84fcf610686e0adc30282efd4f32e4109771a5f1d5d06c1e9948a2f47dd7de09d4ccca37458aeb5ac916e1
6
+ metadata.gz: a8fd037e47ef7df933593dc693c29bbad66d851395d313cc41fe0ff8b918d8f7835cdad05448eac5ad3570a5f7906053d5507d1a7dc981bbbc0b02b7a6ad6d06
7
+ data.tar.gz: ff1e429f0813d83794a3ab2c5f251f5da316817fa0cd9522f326e865cf16205309adbb4436f00f774c4565330038bb894e41bf93aba44b74a4a26f7d178c6b38
data/bin/step_sequencer CHANGED
@@ -2,6 +2,10 @@
2
2
  require 'step_sequencer'
3
3
  require 'thor'
4
4
  class StepSequencer::CLI < Thor
5
+ desc "version", "print version"
6
+ def version
7
+ puts StepSequencer::VERSION
8
+ end
5
9
  desc "test", "run tests"
6
10
  def test
7
11
  StepSequencer::Tests.run
@@ -13,6 +13,14 @@ class StepSequencer; end
13
13
  refinements_file = Gem.find_files("step_sequencer/refinements.rb").shift
14
14
  require refinements_file
15
15
 
16
+ # Also require the version file
17
+ version_file = Gem.find_files("version.rb").shift
18
+ require version_file
19
+
20
+ # Also require the youtube downloader
21
+ version_file = Gem.find_files("youtube_downloader.rb").shift
22
+ require version_file
23
+
16
24
  # Add a little util method to access the refinements from other files.
17
25
  class StepSequencer
18
26
  def self.refinement(name)
@@ -21,7 +29,6 @@ class StepSequencer
21
29
  end
22
30
 
23
31
  # Require all ruby files in lib/step_sequencer, ordered by depth
24
- # This loads the refinements file again but it's no big deal
25
32
  Gem.find_files("step_sequencer/**/*.rb")
26
33
  .sort_by { |path| path.count "/" }
27
34
  .each &method(:require)
@@ -13,6 +13,11 @@ class StepSequencer::REPL
13
13
  class Helpers
14
14
 
15
15
  HelpSections = {
16
+ download: "
17
+ Usage: download #{"\"<youtube url>\"".blue}, #{"\"<out dir>\"".blue} #{"\"<filename>\"".blue}
18
+ - requires youtube-dl program to be installed on computer
19
+ - e.g. download 'http://youtube.com/asd', '~/Desktop', 'foo.mp3'
20
+ ",
16
21
  play: "
17
22
  Usage: play #{"\"<path>\"".blue}
18
23
  - plays the file in its own thread using mpg123
@@ -96,6 +101,10 @@ class StepSequencer::REPL
96
101
  StepSequencer::SoundPlayer
97
102
  end
98
103
 
104
+ def download(url, outpath, filename)
105
+ YoutubeDownloader.download_audio url, outpath, filename
106
+ end
107
+
99
108
  def combine(paths)
100
109
  builder.build(
101
110
  sources: paths, effect: :Combine
data/lib/version.rb CHANGED
@@ -1,4 +1,4 @@
1
- module StepSequencer
2
- VERSION = '1.1.2'
1
+ class StepSequencer
2
+ VERSION = '1.1.3'
3
3
 
4
4
  end
@@ -0,0 +1,31 @@
1
+ class YoutubeDownloader
2
+
3
+ def self.download_audio(url, outdir, filename)
4
+ system <<-SH
5
+ cd #{outdir} && \
6
+ youtube-dl \
7
+ --extract-audio \
8
+ --prefer-ffmpeg \
9
+ --audio-format mp3 \
10
+ --yes-playlist \
11
+ --output #{filename} \
12
+ --audio-quality 3 \
13
+ #{url} \
14
+ &>/dev/null
15
+ SH
16
+ end
17
+
18
+ def self.download_playlist(url, outdir, filename)
19
+ system <<-SH
20
+ cd #{outdir} && \
21
+ youtube-dl \
22
+ --extract-audio \
23
+ --prefer-ffmpeg \
24
+ --audio-format mp3 \
25
+ --audio-quality 3 \
26
+ --output #{filename} \
27
+ #{url} \
28
+ &>/dev/null
29
+ SH
30
+ end
31
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: step_sequencer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - max pleaner
@@ -110,6 +110,7 @@ files:
110
110
  - lib/step_sequencer/tests.rb
111
111
  - lib/step_sequencer/tests/test_cases.rb
112
112
  - lib/version.rb
113
+ - lib/youtube_downloader.rb
113
114
  homepage: http://github.com/maxpleaner/step_sequencer
114
115
  licenses:
115
116
  - MIT
@@ -130,7 +131,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
130
131
  version: 2.6.11
131
132
  requirements: []
132
133
  rubyforge_project:
133
- rubygems_version: 2.6.11
134
+ rubygems_version: 2.5.1
134
135
  signing_key:
135
136
  specification_version: 4
136
137
  summary: step sequencer (music tool)