mpd_client 0.0.4 → 0.0.5
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/CHANGELOG.md +6 -0
- data/MPD_COMMANDS.md +657 -608
- data/README.md +1 -1
- data/examples/Gemfile +1 -1
- data/examples/range.rb +3 -2
- data/examples/rangeid.rb +24 -0
- data/examples/stickers.rb +1 -1
- data/lib/mpd_client.rb +15 -2
- data/lib/mpd_client/version.rb +1 -1
- metadata +4 -3
data/README.md
CHANGED
@@ -112,6 +112,6 @@ For more information about logging configuration, see http://www.ruby-doc.org/st
|
|
112
112
|
|
113
113
|
## License and Author
|
114
114
|
|
115
|
-
Copyright (c) 2013 by Anton Maminov
|
115
|
+
Copyright (c) 2013-2015 by Anton Maminov
|
116
116
|
|
117
117
|
This library is distributed under the MIT license. Please see the LICENSE file.
|
data/examples/Gemfile
CHANGED
data/examples/range.rb
CHANGED
@@ -14,6 +14,7 @@ client.connect('localhost', 6600)
|
|
14
14
|
client.delete([10,])
|
15
15
|
|
16
16
|
# move the first three songs after the fifth number in the playlist
|
17
|
-
client.move([0, 3],
|
17
|
+
client.move([0, 3], 5)
|
18
18
|
|
19
|
-
|
19
|
+
# print songs form 5 to 10
|
20
|
+
client.playlistinfo([5, 10]).each{ |s| puts "#{s['artist']} - #{s['title']}"}
|
data/examples/rangeid.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'bundler'
|
2
|
+
Bundler.setup :default
|
3
|
+
|
4
|
+
require 'pp'
|
5
|
+
require 'logger'
|
6
|
+
require 'mpd_client'
|
7
|
+
|
8
|
+
MPDClient.log = Logger.new($stderr)
|
9
|
+
|
10
|
+
client = MPDClient.new
|
11
|
+
client.connect('localhost', 6600)
|
12
|
+
|
13
|
+
# Get id of the first song in the playllist
|
14
|
+
song = client.playlistinfo(1).first
|
15
|
+
pp "#{song['artist']} - #{song['title']}"
|
16
|
+
song_id = song['id']
|
17
|
+
|
18
|
+
# Specifies the portion of the song that shall be played
|
19
|
+
client.rangeid(song_id, [60,70])
|
20
|
+
|
21
|
+
# Play the playlist at song 1
|
22
|
+
client.play(1)
|
23
|
+
|
24
|
+
pp client.status
|
data/examples/stickers.rb
CHANGED
@@ -14,7 +14,7 @@ MPDClient.log = Logger.new($stderr)
|
|
14
14
|
client = MPDClient.new
|
15
15
|
|
16
16
|
# Connecting to the server
|
17
|
-
client.connect('/
|
17
|
+
client.connect('/run/mpd/socket')
|
18
18
|
|
19
19
|
puts "MPD version: #{client.mpd_version}"
|
20
20
|
puts "mpd_client version: #{MPDClient::VERSION}"
|
data/lib/mpd_client.rb
CHANGED
@@ -9,7 +9,7 @@ SUCCESS = "OK"
|
|
9
9
|
NEXT = "list_OK"
|
10
10
|
|
11
11
|
# MPD changelog: http://git.musicpd.org/cgit/master/mpd.git/plain/NEWS
|
12
|
-
# http://
|
12
|
+
# http://www.musicpd.org/doc/protocol/command_reference.html
|
13
13
|
# http://git.musicpd.org/cgit/cirrus/mpd.git/plain/doc/protocol.xml
|
14
14
|
#
|
15
15
|
COMMANDS = {
|
@@ -45,6 +45,8 @@ COMMANDS = {
|
|
45
45
|
# Playlist Commands
|
46
46
|
"add" => "fetch_nothing",
|
47
47
|
"addid" => "fetch_item",
|
48
|
+
"addtagid" => "fetch_nothing",
|
49
|
+
"cleartagid" => "fetch_nothing",
|
48
50
|
"clear" => "fetch_nothing",
|
49
51
|
"delete" => "fetch_nothing",
|
50
52
|
"deleteid" => "fetch_nothing",
|
@@ -59,6 +61,7 @@ COMMANDS = {
|
|
59
61
|
"plchangesposid" => "fetch_changes",
|
60
62
|
"prio" => "fetch_nothing",
|
61
63
|
"prioid" => "fetch_nothing",
|
64
|
+
"rangeid" => "fetch_nothing",
|
62
65
|
"shuffle" => "fetch_nothing",
|
63
66
|
"swap" => "fetch_nothing",
|
64
67
|
"swapid" => "fetch_nothing",
|
@@ -81,6 +84,7 @@ COMMANDS = {
|
|
81
84
|
"list" => "fetch_list",
|
82
85
|
"listall" => "fetch_database",
|
83
86
|
"listallinfo" => "fetch_database",
|
87
|
+
"listfiles" => "fetch_database",
|
84
88
|
"lsinfo" => "fetch_database",
|
85
89
|
"search" => "fetch_songs",
|
86
90
|
"searchadd" => "fetch_nothing",
|
@@ -88,6 +92,11 @@ COMMANDS = {
|
|
88
92
|
"update" => "fetch_item",
|
89
93
|
"rescan" => "fetch_item",
|
90
94
|
"readcomments" => "fetch_item",
|
95
|
+
# Mounts and neighbors
|
96
|
+
"mount" => "fetch_nothing",
|
97
|
+
"unmount" => "fetch_nothing",
|
98
|
+
"listmounts" => "fetch_mounts",
|
99
|
+
"listneighbors" => "fetch_neighbors",
|
91
100
|
# Sticker Commands
|
92
101
|
"sticker get" => "fetch_sticker",
|
93
102
|
"sticker set" => "fetch_nothing",
|
@@ -165,7 +174,7 @@ class MPDClient
|
|
165
174
|
end
|
166
175
|
|
167
176
|
def reconnect
|
168
|
-
log.info("MPD (re)connect #{host}, #{port}") if log
|
177
|
+
log.info("MPD (re)connect #{@host}, #{@port}") if log
|
169
178
|
if @host.start_with?('/')
|
170
179
|
@socket = UNIXSocket.new(@host)
|
171
180
|
hello
|
@@ -339,6 +348,10 @@ class MPDClient
|
|
339
348
|
|
340
349
|
def fetch_songs; fetch_objects(['file']); end
|
341
350
|
|
351
|
+
def fetch_mounts; fetch_objects(['mount']); end
|
352
|
+
|
353
|
+
def fetch_neighbors; fetch_objects(['neighbor']); end
|
354
|
+
|
342
355
|
def fetch_messages; fetch_objects('channel'); end
|
343
356
|
|
344
357
|
def fetch_outputs; fetch_objects(['outputid']); end
|
data/lib/mpd_client/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mpd_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anton Maminov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-03-18 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Yet another Ruby MPD client library
|
14
14
|
email:
|
@@ -26,6 +26,7 @@ files:
|
|
26
26
|
- Rakefile
|
27
27
|
- examples/Gemfile
|
28
28
|
- examples/range.rb
|
29
|
+
- examples/rangeid.rb
|
29
30
|
- examples/search_and_replace_playlist.rb
|
30
31
|
- examples/stickers.rb
|
31
32
|
- lib/mpd_client.rb
|
@@ -50,7 +51,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
50
51
|
version: '0'
|
51
52
|
requirements: []
|
52
53
|
rubyforge_project:
|
53
|
-
rubygems_version: 2.4.
|
54
|
+
rubygems_version: 2.4.5
|
54
55
|
signing_key:
|
55
56
|
specification_version: 4
|
56
57
|
summary: Simple Music Player Daemon library written entirely in Ruby
|