muzak 0.3.7 → 0.3.8
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 +4 -4
- data/CONFIGURATION.md +23 -1
- data/bin/muzak-dmenu +45 -12
- data/bin/muzak-index +2 -2
- data/lib/muzak.rb +1 -1
- data/lib/muzak/instance.rb +5 -1
- data/lib/muzak/player/mpv.rb +6 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3338e70c6fa7dc2320227d38b13c944e7041f6a1
|
4
|
+
data.tar.gz: 38ba81685e38e29ad8bb4ce55897d2aa12d30d98
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ccbf8b59dc56189f0805e8c382f54a91d6a2e646802d2e920402e7a1387622832446415419ca22f73547bca00fe43a3bf41cead6de8feb832df678114f3790b8
|
7
|
+
data.tar.gz: fb3b416d63a3ea9517b488881d5f94301d2ce9958ff8b00a1fb7dde8e2b5c93a6b1d19f4a6b4d6acad5cef2fc3463fb738395f8c64ab0367962052c6d30c92e8
|
data/CONFIGURATION.md
CHANGED
@@ -120,6 +120,17 @@ initialize and control.
|
|
120
120
|
The short names of supported players can be found in
|
121
121
|
{Muzak::Player::PLAYER_MAP}.
|
122
122
|
|
123
|
+
### `mpv-no-art`
|
124
|
+
|
125
|
+
*Optional.*
|
126
|
+
|
127
|
+
*Default:* `false`
|
128
|
+
|
129
|
+
If `mpv-no-art: true` is set in the configuration file *and* `player: mpv` is
|
130
|
+
set, then `mpv` will be instructed to disable all video output entirely.
|
131
|
+
This option is primarily useful in conjunction with plugins that provide
|
132
|
+
album art display, or for making Muzak entirely non-graphical.
|
133
|
+
|
123
134
|
### `jukebox-size`
|
124
135
|
|
125
136
|
*Mandatory.*
|
@@ -139,7 +150,7 @@ by default with the `jukebox` size.
|
|
139
150
|
album art, in "WxH" format. If not set, album art will be displayed at
|
140
151
|
any size the player pleases.
|
141
152
|
|
142
|
-
It's entirely up to the user's player to obey this value.
|
153
|
+
It's entirely up to the user's player and/or plugins to obey this value.
|
143
154
|
|
144
155
|
### `autoplay`
|
145
156
|
|
@@ -195,3 +206,14 @@ listen on.
|
|
195
206
|
`dmenu-exec: <command args...>` can be used to alter `muzak-dmenu`'s
|
196
207
|
invocation of `dmenu`. It can also be used to substitute a dmenu-compatible
|
197
208
|
prompt like `rofi -dmenu`.
|
209
|
+
|
210
|
+
### `dmenu-lines-exec`
|
211
|
+
|
212
|
+
*Optional.*
|
213
|
+
|
214
|
+
*No default.*
|
215
|
+
|
216
|
+
`dmenu-lines-exec: <command args>` can be used to alter `muzak-dmenu`'s
|
217
|
+
invocation of `dmenu` when showing selections on multiple lines (e.g.,
|
218
|
+
when offering albums after `enqueue-album` has been selected). It can be
|
219
|
+
used to substitute a dmenu-compatible prompt like `rofi -dmenu`.
|
data/bin/muzak-dmenu
CHANGED
@@ -2,29 +2,62 @@
|
|
2
2
|
|
3
3
|
require "muzak"
|
4
4
|
require "socket"
|
5
|
+
require "json"
|
6
|
+
require "open3"
|
7
|
+
|
8
|
+
DMENU_EXEC = Muzak::Config.dmenu_exec || "dmenu"
|
9
|
+
DMENU_LINES_EXEC = Muzak::Config.dmenu_lines_exec || "dmenu -l 10"
|
5
10
|
|
6
11
|
def fatal(msg)
|
7
12
|
STDERR.puts "Fatal: #{msg}"
|
8
13
|
exit 1
|
9
14
|
end
|
10
15
|
|
11
|
-
def dmenu(options)
|
12
|
-
|
16
|
+
def dmenu(options, lines: false)
|
17
|
+
dmenu_cmd = lines ? DMENU_LINES_EXEC : DMENU_EXEC
|
13
18
|
opts = options.join("\n")
|
14
|
-
|
19
|
+
Open3.popen2(dmenu_cmd) do |stdin, stdout|
|
20
|
+
stdin.puts opts
|
21
|
+
stdin.close
|
22
|
+
stdout.gets
|
23
|
+
end
|
15
24
|
end
|
16
25
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
26
|
+
def muzak_cmd(command)
|
27
|
+
begin
|
28
|
+
server_host = Muzak::Config.daemon_host
|
29
|
+
server_port = Muzak::Config.daemon_port
|
30
|
+
sock = TCPSocket.new server_host, server_port
|
31
|
+
rescue
|
32
|
+
fatal "Is muzakd running?"
|
33
|
+
end
|
34
|
+
|
35
|
+
sock.puts command unless command.empty?
|
36
|
+
response = sock.gets
|
37
|
+
sock.close
|
38
|
+
|
39
|
+
JSON.parse(response)
|
23
40
|
end
|
24
41
|
|
25
42
|
command = dmenu Muzak::Cmd.commands
|
26
43
|
|
27
|
-
|
28
|
-
|
44
|
+
exit if command.nil? || command.empty?
|
45
|
+
|
46
|
+
arguments = case command.chomp
|
47
|
+
when "enqueue-artist"
|
48
|
+
artists = muzak_cmd("list-artists")["response"]["data"]["artists"]
|
49
|
+
dmenu(artists, lines: true)
|
50
|
+
when "enqueue-album"
|
51
|
+
albums = muzak_cmd("list-albums")["response"]["data"]["albums"]
|
52
|
+
dmenu(albums, lines: true)
|
53
|
+
when "enqueue-playlist"
|
54
|
+
playlists = muzak_cmd("list-playlists")["response"]["data"]["playlists"]
|
55
|
+
dmenu(playlists, lines: true)
|
56
|
+
end
|
57
|
+
|
58
|
+
command = "#{command.chomp} #{arguments}" if arguments
|
59
|
+
|
60
|
+
puts command
|
61
|
+
|
62
|
+
muzak_cmd command
|
29
63
|
|
30
|
-
sock.close
|
data/bin/muzak-index
CHANGED
@@ -22,8 +22,8 @@ def help
|
|
22
22
|
--version, -v Print version information
|
23
23
|
|
24
24
|
Arguments:
|
25
|
-
[tree] The filesystem tree to index (default:
|
26
|
-
[index] The saved index (default:
|
25
|
+
[tree] The filesystem tree to index (default: #{Muzak::Config.music})
|
26
|
+
[index] The saved index (default: #{Muzak::Config::INDEX_FILE})
|
27
27
|
EOS
|
28
28
|
|
29
29
|
exit
|
data/lib/muzak.rb
CHANGED
data/lib/muzak/instance.rb
CHANGED
data/lib/muzak/player/mpv.rb
CHANGED
@@ -25,11 +25,7 @@ module Muzak
|
|
25
25
|
|
26
26
|
debug "activating #{self.class}"
|
27
27
|
|
28
|
-
|
29
|
-
# if i get around to separating album art from playback,
|
30
|
-
# these two flags disable mpv's video output entirely
|
31
|
-
# "--no-force-window",
|
32
|
-
# "--no-video",
|
28
|
+
args = [
|
33
29
|
# there's also this, which (might) also work
|
34
30
|
# "--audio-display=no",
|
35
31
|
"--no-osc",
|
@@ -39,14 +35,16 @@ module Muzak
|
|
39
35
|
"--load-scripts=no", # autoload and other scripts with clobber our mpv management
|
40
36
|
]
|
41
37
|
|
42
|
-
|
38
|
+
args.concat ["--no-force-window", "--no-video"] if Config.mpv_no_art
|
39
|
+
|
40
|
+
args << "--geometry=#{Config.art_geometry}" if Config.art_geometry
|
43
41
|
|
44
42
|
# this is an experimental flag, but it could improve
|
45
43
|
# muzak's load times substantially when used with a network
|
46
44
|
# mounted music library
|
47
|
-
|
45
|
+
args << "--prefetch-playlist" if ::MPV::Server.has_flag?("--prefetch-playlist")
|
48
46
|
|
49
|
-
@mpv = ::MPV::Session.new(user_args:
|
47
|
+
@mpv = ::MPV::Session.new(user_args: args)
|
50
48
|
@mpv.callbacks << ::MPV::Callback.new(self, :dispatch_event!)
|
51
49
|
|
52
50
|
instance.event :player_activated
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: muzak
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Woodruff
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-02-
|
11
|
+
date: 2017-02-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: taglib-ruby
|