spty 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +20 -0
- data/lib/spty/cli.rb +5 -2
- data/lib/spty/commands/help_command.rb +26 -0
- data/lib/spty/commands/launch_command.rb +17 -0
- data/lib/spty/commands/player_command.rb +9 -2
- data/lib/spty/commands/volume_command.rb +76 -0
- data/lib/spty/version.rb +1 -1
- data/spty.gemspec +1 -0
- metadata +19 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6da1e8db64f316e104c98ae9254b694e2e983a4a
|
4
|
+
data.tar.gz: 5d9656b5fb1b560c96caf5a6e889f31262731b37
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6d729c7902bf5557b31deb17e3f0841ade66b69b35e955d6d937b91bb1077e170401bdf0ba704af8781597e0597aa20dbc0c95d0a5375fa4fc311e39effeb272
|
7
|
+
data.tar.gz: 30b5202ddbc8cc4e4c97eb3ea8573122f332a8167dac46efcba4f9dc7b7fa81dd1190ced548b801089e701a1d301756a4b217342a331c396f8f003253f8c0128
|
data/README.md
CHANGED
@@ -45,6 +45,26 @@ Replay previous track
|
|
45
45
|
$ spty track replay
|
46
46
|
```
|
47
47
|
|
48
|
+
Show current volume level
|
49
|
+
```
|
50
|
+
$ spty volume
|
51
|
+
```
|
52
|
+
|
53
|
+
Increase the volume level by 10
|
54
|
+
```
|
55
|
+
$ spty volume up
|
56
|
+
```
|
57
|
+
|
58
|
+
Decrease the volume level by 10
|
59
|
+
```
|
60
|
+
$ spty volume down
|
61
|
+
```
|
62
|
+
|
63
|
+
Set the volume level with given number
|
64
|
+
```
|
65
|
+
$ spty volume [number]
|
66
|
+
```
|
67
|
+
|
48
68
|
## Contributing
|
49
69
|
|
50
70
|
Bug reports and pull requests are welcome on GitHub at
|
data/lib/spty/cli.rb
CHANGED
@@ -7,8 +7,11 @@ module Spty
|
|
7
7
|
klass = Object.const_get("Spty::Command::#{command.capitalize}Command")
|
8
8
|
klass.(args, command)
|
9
9
|
rescue NameError => _e
|
10
|
-
|
11
|
-
|
10
|
+
if !command.nil?
|
11
|
+
puts "Do not understand command: #{command}"
|
12
|
+
end
|
13
|
+
|
14
|
+
Spty::Command::HelpCommand.(args, command)
|
12
15
|
end
|
13
16
|
end
|
14
17
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Spty::Command
|
2
|
+
class HelpCommand
|
3
|
+
|
4
|
+
HELP_TEXT =
|
5
|
+
"usage: spty <command> [<args>]\n"\
|
6
|
+
"\n"\
|
7
|
+
"Player specific command\n"\
|
8
|
+
" state Display teh current player state\n"\
|
9
|
+
" toggle Toggle player play or pause\n"\
|
10
|
+
" skip Skip the current track and play the next track\n"\
|
11
|
+
" replay Replay the current track\n"\
|
12
|
+
" volume Shows the current volume level"\
|
13
|
+
" volume up Increase the volume level by 10"\
|
14
|
+
" volume down Decrease the volume level by 11"\
|
15
|
+
" volume [number] Set the volume level to number"\
|
16
|
+
"\n"\
|
17
|
+
"Track specific command\n"\
|
18
|
+
" info Show information for the current track\n"\
|
19
|
+
"\n"\
|
20
|
+
"Version: #{Spty::VERSION}"
|
21
|
+
|
22
|
+
def self.call(_command, _)
|
23
|
+
puts HELP_TEXT
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Spty::Command
|
2
|
+
class LaunchCommand
|
3
|
+
ASCRIPT_PLAYER_LAUNCH = <<-EOL
|
4
|
+
tell application "Spotify" to activate
|
5
|
+
EOL
|
6
|
+
|
7
|
+
def self.call(_, _command = 'launch')
|
8
|
+
if Spty::Command::PlayerCommand.running?(show_mesg: false)
|
9
|
+
puts 'Spotify player is running'
|
10
|
+
return
|
11
|
+
end
|
12
|
+
|
13
|
+
Spty::AppleScriptRunner.(ASCRIPT_PLAYER_LAUNCH)
|
14
|
+
puts 'launching Spotify player'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -8,11 +8,18 @@ module Spty::Command
|
|
8
8
|
return "Not running"
|
9
9
|
end if
|
10
10
|
EOL
|
11
|
-
def self.running?
|
11
|
+
def self.running?(show_mesg: true)
|
12
12
|
player_running = Spty::AppleScriptRunner.(ASCRIPT_PLAYER_DETECT)
|
13
13
|
return true if player_running.strip == 'Running'
|
14
14
|
|
15
|
-
|
15
|
+
if show_mesg
|
16
|
+
output = "player not running\n"\
|
17
|
+
"to launch Spotify player, use: spty launch"
|
18
|
+
|
19
|
+
puts output
|
20
|
+
end
|
21
|
+
|
22
|
+
false
|
16
23
|
end
|
17
24
|
|
18
25
|
# Method is depreciated. It calls the actuall method
|
@@ -0,0 +1,76 @@
|
|
1
|
+
module Spty::Command
|
2
|
+
class VolumeCommand
|
3
|
+
def self.call(options, _)
|
4
|
+
return unless Spty::Command::PlayerCommand.running?
|
5
|
+
|
6
|
+
action = options.shift
|
7
|
+
|
8
|
+
# call status if no sub command was called.
|
9
|
+
action = 'status' if action.nil?
|
10
|
+
|
11
|
+
# if sub command is number, trigger volume set with the number.
|
12
|
+
if action =~ /\A\d+\z/
|
13
|
+
options = action.to_i
|
14
|
+
action = 'level'
|
15
|
+
end
|
16
|
+
|
17
|
+
begin
|
18
|
+
send(action.to_sym, options)
|
19
|
+
rescue NameError => _e
|
20
|
+
puts "unknown volume command #{action}"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
ASCRIPT_PLAYER_VOLUME_STATUS = <<-EOL
|
25
|
+
tell application "Spotify" to return sound volume
|
26
|
+
EOL
|
27
|
+
def self.status(_options = nil)
|
28
|
+
current_vol = Spty::AppleScriptRunner.call(ASCRIPT_PLAYER_VOLUME_STATUS)
|
29
|
+
puts "volume is at #{current_vol}"
|
30
|
+
end
|
31
|
+
|
32
|
+
ASCRIPT_PLAYER_VOLUME_UP = <<-EOL
|
33
|
+
tell application "Spotify"
|
34
|
+
set currentvol to get sound volume
|
35
|
+
if currentvol > 90 then
|
36
|
+
set sound volume to 100
|
37
|
+
else
|
38
|
+
set sound volume to currentvol + 10
|
39
|
+
end if
|
40
|
+
end tell
|
41
|
+
EOL
|
42
|
+
def self.up(_options)
|
43
|
+
Spty::AppleScriptRunner.call(ASCRIPT_PLAYER_VOLUME_UP)
|
44
|
+
status
|
45
|
+
end
|
46
|
+
|
47
|
+
ASCRIPT_PLAYER_VOLUME_DOWN = <<-EOL
|
48
|
+
tell application "Spotify"
|
49
|
+
set currentvol to get sound volume
|
50
|
+
if currentvol < 10 then
|
51
|
+
set sound volume to 0
|
52
|
+
else
|
53
|
+
set sound volume to currentvol - 10
|
54
|
+
end if
|
55
|
+
end tell
|
56
|
+
EOL
|
57
|
+
def self.down(_options)
|
58
|
+
Spty::AppleScriptRunner.call(ASCRIPT_PLAYER_VOLUME_DOWN)
|
59
|
+
status
|
60
|
+
end
|
61
|
+
|
62
|
+
ASCRIPT_PLAYER_VOLUME_SET = <<-EOL
|
63
|
+
tell application "Spotify" to set sound volume to %<level>s
|
64
|
+
EOL
|
65
|
+
def self.level(options)
|
66
|
+
if options < 0 || options > 100
|
67
|
+
puts 'volume level should be between 0 to 100'
|
68
|
+
return
|
69
|
+
end
|
70
|
+
|
71
|
+
script = format(ASCRIPT_PLAYER_VOLUME_SET, level: options)
|
72
|
+
Spty::AppleScriptRunner.call(script)
|
73
|
+
status
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
data/lib/spty/version.rb
CHANGED
data/spty.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- J Shamsul
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-09-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '9.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: simplecov
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
description: Control your Spotify player from the terminal. Currently only works for
|
70
84
|
Mac OSX.
|
71
85
|
email:
|
@@ -90,7 +104,9 @@ files:
|
|
90
104
|
- lib/spty/apple_script_runner.rb
|
91
105
|
- lib/spty/cli.rb
|
92
106
|
- lib/spty/commands/base_command.rb
|
107
|
+
- lib/spty/commands/help_command.rb
|
93
108
|
- lib/spty/commands/info_command.rb
|
109
|
+
- lib/spty/commands/launch_command.rb
|
94
110
|
- lib/spty/commands/player_command.rb
|
95
111
|
- lib/spty/commands/replay_command.rb
|
96
112
|
- lib/spty/commands/skip_command.rb
|
@@ -98,6 +114,7 @@ files:
|
|
98
114
|
- lib/spty/commands/toggle_command.rb
|
99
115
|
- lib/spty/commands/track_command.rb
|
100
116
|
- lib/spty/commands/version_command.rb
|
117
|
+
- lib/spty/commands/volume_command.rb
|
101
118
|
- lib/spty/version.rb
|
102
119
|
- spty.gemspec
|
103
120
|
homepage: https://github.com/jibone/spty-rb
|