keenser 0.0.6 → 0.0.7
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/bin/keenser +27 -20
- data/lib/keenser/model/song.rb +13 -2
- data/lib/keenser/music.rb +3 -2
- data/lib/keenser/server.rb +2 -0
- data/lib/keenser/version.rb +1 -1
- 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: 1cd662a26ed0e144ce18028fdd47f6c7303721e6
|
4
|
+
data.tar.gz: 5c6badda070063a7461fcff53e0e2a608f49210d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1455a3aec26e933b11aec49ec7c39417fa7010030a33c46f605bd5b81b8304a70613678291143c401b58d9d583e434ab9279d86d3b54cde2afd1d01753830918
|
7
|
+
data.tar.gz: c6fc26ba9a993d0cada2c9bfb9bfacbe0efba672293d8e9c7096da976058d4a4edb4156da9a2b688b0eb07d98177347a3cee6284a4fec32fad876c4689d65b74
|
data/bin/keenser
CHANGED
@@ -1,28 +1,29 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
# FIXME: don't hardcode this; ensure SYNC
|
4
|
+
ENV['PATH'] = "/usr/local/bin:#{ENV['PATH']}"
|
6
5
|
|
7
|
-
|
8
|
-
unless system "
|
9
|
-
|
10
|
-
|
11
|
-
`tmux split-window -h -t '#{session}'`
|
12
|
-
`tmux send-keys -t '#{session}' "cmus" C-m`
|
13
|
-
if ENV["TMUX"]
|
14
|
-
puts "Started new session '#{session}'"
|
15
|
-
exit
|
16
|
-
else
|
17
|
-
exec "tmux attach -t '#{session}'"
|
18
|
-
end
|
6
|
+
%w{ tmux cmus cmus-remote }.each do |bin|
|
7
|
+
unless system "which #{bin} >/dev/null 2>&1"
|
8
|
+
puts "Couldn't find #{bin}. Is it on $PATH?"
|
9
|
+
exit 1
|
19
10
|
end
|
20
11
|
end
|
21
12
|
|
13
|
+
session = "keenser"
|
14
|
+
unless system "tmux list-windows -t '#{session}' >/dev/null 2>&1"
|
15
|
+
puts "Booting server in tmux session '#{session}'"
|
16
|
+
`TMUX= tmux new-session -s '#{session}' -d`
|
17
|
+
`tmux send-keys -t '#{session}' '#{__FILE__} server' C-m`
|
18
|
+
`tmux split-window -h -t '#{session}'`
|
19
|
+
`tmux send-keys -t '#{session}' "cmus" C-m`
|
20
|
+
sleep 1
|
21
|
+
end
|
22
|
+
|
22
23
|
|
23
24
|
require_relative "../lib/keenser"
|
24
25
|
|
25
|
-
case cmd
|
26
|
+
case cmd = ARGV.shift
|
26
27
|
when "boot"
|
27
28
|
# No-op, just run the above startup logic
|
28
29
|
when nil, "console"
|
@@ -31,10 +32,16 @@ when nil, "console"
|
|
31
32
|
Keenser.pry
|
32
33
|
when "server"
|
33
34
|
Keenser.start_server!
|
34
|
-
when "
|
35
|
+
when "status"
|
36
|
+
Keenser.status
|
37
|
+
when "setup"
|
38
|
+
Keenser.setup
|
39
|
+
else # Pass command to remote
|
35
40
|
require "drb/drb"
|
36
41
|
DRb.start_service
|
37
|
-
|
38
|
-
|
39
|
-
|
42
|
+
begin
|
43
|
+
puts DRbObject.new_with_uri(Keenser::Server.uri).send cmd, *ARGV
|
44
|
+
rescue DRb::DRbConnError => e
|
45
|
+
puts "Could not connect to Keenser server: #{e.message}"
|
46
|
+
end
|
40
47
|
end
|
data/lib/keenser/model/song.rb
CHANGED
@@ -9,8 +9,7 @@ module Keenser
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def to_s
|
12
|
-
|
13
|
-
disp = "#{pre}#{artist} - #{title}"
|
12
|
+
disp = "#{badge} #{name}".gsub /\s+/, ' '
|
14
13
|
if disp.length > 40
|
15
14
|
disp.slice(0,39) + "…"
|
16
15
|
else
|
@@ -18,6 +17,18 @@ module Keenser
|
|
18
17
|
end
|
19
18
|
end
|
20
19
|
|
20
|
+
def badge
|
21
|
+
status == "playing" ? "" : "[#{status}]"
|
22
|
+
end
|
23
|
+
|
24
|
+
def name
|
25
|
+
if artist && title
|
26
|
+
"#{artist} - #{title}"
|
27
|
+
else
|
28
|
+
path
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
21
32
|
def local_path
|
22
33
|
"#{Computer.local.music}/#{path}"
|
23
34
|
end
|
data/lib/keenser/music.rb
CHANGED
@@ -28,14 +28,15 @@ module Keenser
|
|
28
28
|
|
29
29
|
def tag name
|
30
30
|
playing.tag name
|
31
|
-
puts "Tagging #{playing} as #{name}"
|
31
|
+
puts "Tagging #{playing.strip} as #{name}"
|
32
32
|
"#{name} ← #{playing}"
|
33
33
|
end
|
34
34
|
|
35
35
|
def list name
|
36
|
+
return all if name == "all"
|
36
37
|
t = Tag.where(name: name.to_s).first
|
37
|
-
t.export!
|
38
38
|
raise Error.new "Cannot find tag '#{t}'" unless t
|
39
|
+
t.export!
|
39
40
|
`echo "load -p #{t.playlist}\nset play_library=false\nplayer-next" | cmus-remote`
|
40
41
|
"'#{name}' now playing"
|
41
42
|
end
|
data/lib/keenser/server.rb
CHANGED
@@ -11,6 +11,7 @@ module Keenser
|
|
11
11
|
end
|
12
12
|
|
13
13
|
class Server
|
14
|
+
# FIXME: set up access control list
|
14
15
|
def self.uri
|
15
16
|
"druby://localhost:8787"
|
16
17
|
end
|
@@ -20,6 +21,7 @@ module Keenser
|
|
20
21
|
Music.send cmd, *args
|
21
22
|
rescue => e
|
22
23
|
puts "#{'✗'.red} #{e.message}"
|
24
|
+
"✗ #{e.message}"
|
23
25
|
end
|
24
26
|
end
|
25
27
|
end
|
data/lib/keenser/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: keenser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Dabbs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colorize
|