muzak 0.0.10 → 0.0.11
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/README.md +1 -2
- data/bin/muzak +2 -7
- data/bin/muzakd +3 -8
- data/lib/muzak/config.rb +2 -0
- data/lib/muzak/const.rb +2 -2
- data/lib/muzak/index.rb +19 -12
- data/lib/muzak/instance.rb +1 -4
- data/lib/muzak/utils.rb +3 -3
- 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: bfec18a0835cc1c148e9bf4c1ee3c9770143ba46
|
4
|
+
data.tar.gz: 44f5b96244563e8161d6c9950079551b4554d80a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c8c79d444285e835e753fe1582147a30de11bf96a9d3d18f2af54b116ff315937000a88ab1a2a8b1c89de767ac0692d95125bbbc01557cd42ed808c96173d68
|
7
|
+
data.tar.gz: bbe8db2c4bdbe6f0df3eea079de83795ef4638437268ef779d5231ea8c3afde337e437335ff30a6899ab92d1defb8760f384f02b72c59524b842beefcd67b151
|
data/README.md
CHANGED
@@ -18,7 +18,7 @@ Muzak is still a work in process. Don't expect stability or pleasant output.
|
|
18
18
|
On the command-line:
|
19
19
|
|
20
20
|
```shell
|
21
|
-
$ ruby -Ilib bin/muzak.rb
|
21
|
+
$ ruby -Ilib bin/muzak.rb
|
22
22
|
muzak> help
|
23
23
|
```
|
24
24
|
|
@@ -37,4 +37,3 @@ $ ruby -Ilib bin/muzak-cmd "command"
|
|
37
37
|
* current indexing/sorting logic is terrible
|
38
38
|
* all the documentation
|
39
39
|
* readline's tab complete is terrible with spaces (maybe use `bond`?)
|
40
|
-
* replace YAML index with a more space/time efficient format (JSON, msgpack, Marshal?)
|
data/bin/muzak
CHANGED
@@ -4,14 +4,9 @@ require "muzak"
|
|
4
4
|
require "readline"
|
5
5
|
require "shellwords"
|
6
6
|
|
7
|
-
|
8
|
-
debug: ARGV.include?("--debug") || ARGV.include?("-d"),
|
9
|
-
verbose: ARGV.include?("--verbose") || ARGV.include?("-v"),
|
10
|
-
}
|
7
|
+
Thread.abort_on_exception = Muzak::Config.debug
|
11
8
|
|
12
|
-
|
13
|
-
|
14
|
-
muzak = Muzak::Instance.new(opts)
|
9
|
+
muzak = Muzak::Instance.new
|
15
10
|
|
16
11
|
COMMANDS = Muzak::Cmd.commands
|
17
12
|
|
data/bin/muzakd
CHANGED
@@ -3,15 +3,10 @@
|
|
3
3
|
require "muzak"
|
4
4
|
require "shellwords"
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
verbose: ARGV.include?("--verbose") || ARGV.include?("-v"),
|
9
|
-
}
|
6
|
+
Process.daemon unless Muzak::Config.debug || Muzak::Config.verbose
|
7
|
+
Thread.abort_on_exception = Muzak::Config.debug
|
10
8
|
|
11
|
-
|
12
|
-
Thread.abort_on_exception = opts[:debug]
|
13
|
-
|
14
|
-
muzak = Muzak::Instance.new(opts)
|
9
|
+
muzak = Muzak::Instance.new
|
15
10
|
|
16
11
|
fifo_path = File.join(Muzak::CONFIG_DIR, "muzak.fifo")
|
17
12
|
File.delete(fifo_path) if File.exist?(fifo_path) # just in case a previous session died
|
data/lib/muzak/config.rb
CHANGED
data/lib/muzak/const.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
module Muzak
|
2
|
-
VERSION = "0.0.
|
2
|
+
VERSION = "0.0.11".freeze
|
3
3
|
|
4
4
|
CONFIG_DIR = File.expand_path("~/.config/muzak").freeze
|
5
5
|
CONFIG_FILE = File.join(CONFIG_DIR, "muzak.yml").freeze
|
6
|
-
INDEX_FILE = File.join(CONFIG_DIR, "index.
|
6
|
+
INDEX_FILE = File.join(CONFIG_DIR, "index.dat").freeze
|
7
7
|
PLAYLIST_DIR = File.join(CONFIG_DIR, "playlists").freeze
|
8
8
|
USER_PLUGIN_DIR = File.join(CONFIG_DIR, "plugins").freeze
|
9
9
|
USER_COMMAND_DIR = File.join(CONFIG_DIR, "commands").freeze
|
data/lib/muzak/index.rb
CHANGED
@@ -9,7 +9,7 @@ module Muzak
|
|
9
9
|
|
10
10
|
if File.exist?(INDEX_FILE)
|
11
11
|
verbose "loading index from #{INDEX_FILE}"
|
12
|
-
@hash =
|
12
|
+
@hash = Marshal::load(File.read INDEX_FILE)
|
13
13
|
return unless outdated?
|
14
14
|
end
|
15
15
|
|
@@ -19,7 +19,9 @@ module Muzak
|
|
19
19
|
def build!
|
20
20
|
@hash = build_index_hash!
|
21
21
|
|
22
|
-
|
22
|
+
debug "indexed #{albums.length} albums by #{artists.length} artists"
|
23
|
+
|
24
|
+
File.open(INDEX_FILE, "w") { |io| io.write Marshal::dump @hash }
|
23
25
|
end
|
24
26
|
|
25
27
|
def deep?
|
@@ -35,19 +37,21 @@ module Muzak
|
|
35
37
|
end
|
36
38
|
|
37
39
|
def artists
|
38
|
-
@hash["artists"].keys
|
40
|
+
@artists ||= @hash["artists"].keys
|
39
41
|
end
|
40
42
|
|
41
43
|
def albums
|
42
|
-
albums_hash
|
44
|
+
@albums_hash ||= begin
|
45
|
+
albums_hash = {}
|
43
46
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
+
artists.each do |a|
|
48
|
+
@hash["artists"][a]["albums"].each do |title, album_hash|
|
49
|
+
albums_hash[title] = Album.new(title, album_hash)
|
50
|
+
end
|
47
51
|
end
|
48
|
-
end
|
49
52
|
|
50
|
-
|
53
|
+
albums_hash
|
54
|
+
end
|
51
55
|
end
|
52
56
|
|
53
57
|
def album_names
|
@@ -55,9 +59,12 @@ module Muzak
|
|
55
59
|
end
|
56
60
|
|
57
61
|
def albums_by(artist)
|
58
|
-
|
59
|
-
|
60
|
-
|
62
|
+
if artists.include?(artist)
|
63
|
+
@hash["artists"][artist]["albums"].map { |title, album| Album.new(title, album) }
|
64
|
+
else
|
65
|
+
error "no such artist: '#{artist}'" unless @hash["artists"].key?(artist)
|
66
|
+
[]
|
67
|
+
end
|
61
68
|
end
|
62
69
|
|
63
70
|
def jukebox(count = 50)
|
data/lib/muzak/instance.rb
CHANGED
@@ -15,9 +15,6 @@ module Muzak
|
|
15
15
|
attr_reader :index, :player, :plugins, :playlists
|
16
16
|
|
17
17
|
def initialize(opts = {})
|
18
|
-
$debug = opts[:debug]
|
19
|
-
$verbose = opts[:verbose]
|
20
|
-
|
21
18
|
verbose "muzak is starting..."
|
22
19
|
|
23
20
|
@index = Index.new(Config.music, deep: Config.deep_index)
|
@@ -37,7 +34,7 @@ module Muzak
|
|
37
34
|
plugins.each do |plugin|
|
38
35
|
Thread.new do
|
39
36
|
plugin.send(type, *args)
|
40
|
-
end
|
37
|
+
end
|
41
38
|
end
|
42
39
|
end
|
43
40
|
end
|
data/lib/muzak/utils.rb
CHANGED
@@ -9,7 +9,7 @@ module Muzak
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def music?(filename)
|
12
|
-
[".mp3", ".flac", ".m4a", ".wav", ".ogg", ".oga", ".opus"].include?(File.extname(filename))
|
12
|
+
[".mp3", ".flac", ".m4a", ".wav", ".ogg", ".oga", ".opus"].include?(File.extname(filename.downcase))
|
13
13
|
end
|
14
14
|
|
15
15
|
def album_art?(filename)
|
@@ -17,11 +17,11 @@ module Muzak
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def debug?
|
20
|
-
|
20
|
+
Config.debug
|
21
21
|
end
|
22
22
|
|
23
23
|
def verbose?
|
24
|
-
|
24
|
+
Config.verbose
|
25
25
|
end
|
26
26
|
|
27
27
|
def pretty(color = :none, str)
|
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.0.
|
4
|
+
version: 0.0.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Woodruff
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-12-
|
11
|
+
date: 2016-12-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: taglib-ruby
|