muzak 0.1.3 → 0.1.4
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/COMMANDS.md +1058 -0
- data/lib/muzak/const.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3bbc4c6526a315ebd1d0c6cb7dd3edf77809d7ae
|
4
|
+
data.tar.gz: 21ac18f09286fd7ba229081247d17ef7311fd881
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e12366f7b35680c4c46dbcb2067bc1a65e4bf7472b160cc693114d0be26e9e68a4c874d1b1c6ae29ec920d2df6549c7650841bf04e33a8ce37ff1355c8f03a2d
|
7
|
+
data.tar.gz: 28b3ab33bd145f695c2c433e3120da0903237fe8c76607cf543eebb2570f88cac1e325d7e146d3437a17c8d17fc55754c38da58b7bdda841d5c16a63072cd55d
|
data/COMMANDS.md
ADDED
@@ -0,0 +1,1058 @@
|
|
1
|
+
Muzak commands
|
2
|
+
==============
|
3
|
+
|
4
|
+
This is the user-facing documentation for muzak's commands.
|
5
|
+
|
6
|
+
For the developer documentation, see {Muzak::Cmd the Muzak::Cmd module}.
|
7
|
+
|
8
|
+
## General behavior
|
9
|
+
|
10
|
+
In general, muzak commands take 0 or more *arguments* and return a single
|
11
|
+
JSON *response* (sent to `stdout` when run through `muzak-cmd`).
|
12
|
+
|
13
|
+
Arguments are denoted with `<angle brackets>` when mandatory
|
14
|
+
and with `[square brackets]` when optional.
|
15
|
+
|
16
|
+
This response will *always* look something like this:
|
17
|
+
|
18
|
+
```json
|
19
|
+
{
|
20
|
+
"response" : {
|
21
|
+
"data" : "some response string (or hash)",
|
22
|
+
"error" : null,
|
23
|
+
"method" : "the corresponding muzak method"
|
24
|
+
}
|
25
|
+
}
|
26
|
+
```
|
27
|
+
|
28
|
+
**Important:** Programs that interact with `muzak` through commands should
|
29
|
+
**always** check the `error` field. If `error` is non-`null`, then the rest of
|
30
|
+
the response should be discarded (or at least not treated as a success).
|
31
|
+
|
32
|
+
The `data` field may be either null, a string, array, or a sub-hash, depending
|
33
|
+
on the command issued. The documentation below will clarify whichever is the
|
34
|
+
case for each command.
|
35
|
+
|
36
|
+
The `method` field corresponds to the {Muzak::Cmd} method that was invoked.
|
37
|
+
In general this will be the "resolved" equivalent
|
38
|
+
(e.g. {Muzak::Cmd#albums_by_artist} for `albums-by-artist`). If muzak
|
39
|
+
doesn't recognize a command or can't match the given arguments to the
|
40
|
+
ones that the command expects, this field will be `command` instead
|
41
|
+
(as the processing is terminated in {Muzak::Instance#command}).
|
42
|
+
|
43
|
+
## Writing commands
|
44
|
+
|
45
|
+
Since muzak commands are just ruby methods under {Muzak::Cmd}, users
|
46
|
+
can write their own commands. These are loaded during muzak's initialization
|
47
|
+
from `~/.config/muzak/commands/*.rb`.
|
48
|
+
|
49
|
+
Commands are essentially first-class members of muzak, and as such can access
|
50
|
+
just about everything available to a {Muzak::Instance}:
|
51
|
+
|
52
|
+
* The current {Muzak::Index}.
|
53
|
+
* The user's {Muzak::Player::StubPlayer player}.
|
54
|
+
* All loaded {Muzak::Plugin::StubPlugin plugins}.
|
55
|
+
* All loaded {Muzak::Playlist}s.
|
56
|
+
|
57
|
+
This makes commands flexible, but also very dangerous - it's easy
|
58
|
+
to monkeypatch over an existing command and subtly break muzak's behavior.
|
59
|
+
|
60
|
+
Here's an example command:
|
61
|
+
|
62
|
+
```ruby
|
63
|
+
module Muzak
|
64
|
+
module Cmd
|
65
|
+
def dump_state
|
66
|
+
debug "dumping muzak's state"
|
67
|
+
|
68
|
+
build_response data: {
|
69
|
+
index: index.to_s
|
70
|
+
player: player.to_s
|
71
|
+
plugins: plugins.to_s
|
72
|
+
playlists: playlists.to_s
|
73
|
+
}
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
```
|
78
|
+
|
79
|
+
In the above example, `dump_state` will be exposed as `dump-state` via
|
80
|
+
{Muzak::Cmd.commands}, which is used by clients to enumerate and display
|
81
|
+
available commands.
|
82
|
+
|
83
|
+
It can also be invoked either directly (`Muzak::Instance#dump_state`) or
|
84
|
+
through {Muzak::Instance#command} (`instance.command "dump-state"`).
|
85
|
+
|
86
|
+
## `albums-by-artist`
|
87
|
+
|
88
|
+
Provides a list of albums by the given artist.
|
89
|
+
|
90
|
+
### Syntax
|
91
|
+
|
92
|
+
`albums-by-artist <artist name>`
|
93
|
+
|
94
|
+
### Example
|
95
|
+
|
96
|
+
```bash
|
97
|
+
$ muzak-cmd albums-by-artist Blink-182
|
98
|
+
```
|
99
|
+
|
100
|
+
### Example Response
|
101
|
+
|
102
|
+
```json
|
103
|
+
{
|
104
|
+
"response" : {
|
105
|
+
"error" : null,
|
106
|
+
"method" : "albums_by_artist",
|
107
|
+
"data" : {
|
108
|
+
"albums" : [
|
109
|
+
"Buddha",
|
110
|
+
"Cheshire Cat",
|
111
|
+
"Cheshire Cat (Japanese Edition)",
|
112
|
+
"Greatest Hits (UK Bonus)",
|
113
|
+
"Take Off Your Pants And Jacket",
|
114
|
+
"Neighborhoods (Deluxe Edition)",
|
115
|
+
"The Mark, Tom And Travis Show",
|
116
|
+
"Enema Of The State",
|
117
|
+
"Blink-182",
|
118
|
+
"Greatest Hits (Japanese Retail + Bonus Tracks)",
|
119
|
+
"Blink-182 (Australian Exclusive Tour Edition)",
|
120
|
+
"Dude Ranch"
|
121
|
+
]
|
122
|
+
}
|
123
|
+
}
|
124
|
+
}
|
125
|
+
|
126
|
+
```
|
127
|
+
|
128
|
+
## `clear-queue`
|
129
|
+
|
130
|
+
Clears the current playback queue.
|
131
|
+
|
132
|
+
### Syntax
|
133
|
+
|
134
|
+
`clear-queue`
|
135
|
+
|
136
|
+
### Example
|
137
|
+
|
138
|
+
```bash
|
139
|
+
$ muzak-cmd clear-queue
|
140
|
+
```
|
141
|
+
|
142
|
+
### Example Response
|
143
|
+
|
144
|
+
```json
|
145
|
+
{
|
146
|
+
"response" : {
|
147
|
+
"error" : null,
|
148
|
+
"method" : "clear_queue",
|
149
|
+
"data" : "null"
|
150
|
+
}
|
151
|
+
}
|
152
|
+
```
|
153
|
+
|
154
|
+
## `config-get`
|
155
|
+
|
156
|
+
Gets the value corresponding to the given config key.
|
157
|
+
|
158
|
+
### Syntax
|
159
|
+
|
160
|
+
`config-get <key>`
|
161
|
+
|
162
|
+
### Example
|
163
|
+
|
164
|
+
```bash
|
165
|
+
$ muzak-cmd config-get jukebox-size
|
166
|
+
```
|
167
|
+
|
168
|
+
### Example Response
|
169
|
+
|
170
|
+
```json
|
171
|
+
{
|
172
|
+
"response" : {
|
173
|
+
"error" : null,
|
174
|
+
"method" : "config_get",
|
175
|
+
"data" : {
|
176
|
+
"jukebox-size" : 100
|
177
|
+
}
|
178
|
+
}
|
179
|
+
}
|
180
|
+
```
|
181
|
+
|
182
|
+
## `enqueue-album`
|
183
|
+
|
184
|
+
Adds the given album to the player's queue.
|
185
|
+
|
186
|
+
### Syntax
|
187
|
+
|
188
|
+
`enqueue-album <album name>`
|
189
|
+
|
190
|
+
### Example
|
191
|
+
|
192
|
+
```bash
|
193
|
+
$ muzak-cmd enqueue-album Energy
|
194
|
+
```
|
195
|
+
|
196
|
+
### Example Response
|
197
|
+
|
198
|
+
```json
|
199
|
+
{
|
200
|
+
"response" : {
|
201
|
+
"error" : null,
|
202
|
+
"method" : "enqueue_album",
|
203
|
+
"data" : "null"
|
204
|
+
}
|
205
|
+
}
|
206
|
+
```
|
207
|
+
|
208
|
+
## `enqueue-artist`
|
209
|
+
|
210
|
+
Adds the given artist (i.e., all of their songs) to the player's queue.
|
211
|
+
|
212
|
+
### Syntax
|
213
|
+
|
214
|
+
`muzak-cmd enqueue-artist <artist name>`
|
215
|
+
|
216
|
+
### Example
|
217
|
+
|
218
|
+
```bash
|
219
|
+
$ muzak-cmd enqueue-artist Operation Ivy
|
220
|
+
```
|
221
|
+
|
222
|
+
### Example Response
|
223
|
+
|
224
|
+
```json
|
225
|
+
{
|
226
|
+
"response" : {
|
227
|
+
"error" : null,
|
228
|
+
"method" : "enqueue_artist",
|
229
|
+
"data" : "null"
|
230
|
+
}
|
231
|
+
}
|
232
|
+
```
|
233
|
+
|
234
|
+
## `enqueue-playlist`
|
235
|
+
|
236
|
+
Adds the given playlist to the player's queue.
|
237
|
+
|
238
|
+
**Note:** This triggers the `playlist_enqueued` event.
|
239
|
+
|
240
|
+
### Syntax
|
241
|
+
|
242
|
+
`muzak-cmd enqueue-playlist <playlist name>`
|
243
|
+
|
244
|
+
### Example
|
245
|
+
|
246
|
+
```bash
|
247
|
+
$ muzak-cmd enqueue-playlist worst-of-2016
|
248
|
+
```
|
249
|
+
|
250
|
+
### Example Response
|
251
|
+
|
252
|
+
```json
|
253
|
+
{
|
254
|
+
"response" : {
|
255
|
+
"error" : null,
|
256
|
+
"method" : "enqueue_playlist",
|
257
|
+
"data" : "null"
|
258
|
+
}
|
259
|
+
}
|
260
|
+
```
|
261
|
+
|
262
|
+
## `help`
|
263
|
+
|
264
|
+
Returns a list of available commands.
|
265
|
+
|
266
|
+
### Syntax
|
267
|
+
|
268
|
+
`help`
|
269
|
+
|
270
|
+
### Example
|
271
|
+
|
272
|
+
```bash
|
273
|
+
$ muzak-cmd help
|
274
|
+
```
|
275
|
+
|
276
|
+
### Example Response
|
277
|
+
|
278
|
+
```json
|
279
|
+
{
|
280
|
+
"response" : {
|
281
|
+
"data" : {
|
282
|
+
"commands" : [
|
283
|
+
"next",
|
284
|
+
"jukebox",
|
285
|
+
"player-activate",
|
286
|
+
"player-deactivate",
|
287
|
+
"play",
|
288
|
+
"pause",
|
289
|
+
"toggle",
|
290
|
+
"previous",
|
291
|
+
"enqueue-artist",
|
292
|
+
"enqueue-album",
|
293
|
+
"list-queue",
|
294
|
+
"shuffle-queue",
|
295
|
+
"clear-queue",
|
296
|
+
"now-playing",
|
297
|
+
"index-build",
|
298
|
+
"list-artists",
|
299
|
+
"list-albums",
|
300
|
+
"albums-by-artist",
|
301
|
+
"songs-by-artist",
|
302
|
+
"config-get",
|
303
|
+
"list-playlists",
|
304
|
+
"playlist-delete",
|
305
|
+
"enqueue-playlist",
|
306
|
+
"playlist-add-album",
|
307
|
+
"playlist-add-artist",
|
308
|
+
"playlist-add-current",
|
309
|
+
"playlist-del-current",
|
310
|
+
"playlist-shuffle",
|
311
|
+
"ping",
|
312
|
+
"help",
|
313
|
+
"list-plugins",
|
314
|
+
"quit",
|
315
|
+
"more-by-artist",
|
316
|
+
"more-from-album",
|
317
|
+
"favorite",
|
318
|
+
"unfavorite"
|
319
|
+
]
|
320
|
+
},
|
321
|
+
"error" : null,
|
322
|
+
"method" : "help"
|
323
|
+
}
|
324
|
+
}
|
325
|
+
```
|
326
|
+
|
327
|
+
## `index-build`
|
328
|
+
|
329
|
+
(Re-)builds the index.
|
330
|
+
|
331
|
+
**Note:** This command can take quite some time to run. It's generally a good
|
332
|
+
idea to either set `index-autobuild` in the configuration to do automatic
|
333
|
+
rebuilds or schedule this command via `cron` or a similar tool.
|
334
|
+
|
335
|
+
### Syntax
|
336
|
+
|
337
|
+
`index-build`
|
338
|
+
|
339
|
+
### Example
|
340
|
+
|
341
|
+
```bash
|
342
|
+
$ muzak-cmd index-build
|
343
|
+
```
|
344
|
+
|
345
|
+
### Example Response
|
346
|
+
|
347
|
+
```json
|
348
|
+
{
|
349
|
+
"response" : {
|
350
|
+
"error" : null,
|
351
|
+
"method" : "index_build",
|
352
|
+
"data" : {
|
353
|
+
"artists" : 10,
|
354
|
+
"albums": 100
|
355
|
+
}
|
356
|
+
}
|
357
|
+
}
|
358
|
+
```
|
359
|
+
|
360
|
+
## `jukebox`
|
361
|
+
|
362
|
+
Adds *N* random songs to the player's queue, where *N* is either the optional
|
363
|
+
argument or `jukebox-size` in the configuration.
|
364
|
+
|
365
|
+
### Syntax
|
366
|
+
|
367
|
+
`jukebox [size]`
|
368
|
+
|
369
|
+
### Example
|
370
|
+
|
371
|
+
```bash
|
372
|
+
$ muzak-cmd jukebox 20
|
373
|
+
```
|
374
|
+
|
375
|
+
### Example Response
|
376
|
+
|
377
|
+
```json
|
378
|
+
{
|
379
|
+
"response" : {
|
380
|
+
"data" : {
|
381
|
+
"jukebox" : [
|
382
|
+
"Outro by Madvillain on Koushik Remixes",
|
383
|
+
"intro by jizue on journal",
|
384
|
+
"Familiar Patterns by PUP on The Dream Is Over",
|
385
|
+
"I Want Cancer For Christmas by Johnny Hobo And The Freight Trains on Love Songs For The Apocalypse",
|
386
|
+
"At The Movies by Bad Brains on Soul Brains - A Bad Brains Reunion Live From Maritime Hall",
|
387
|
+
"Abnormality by The Arrogant Sons Of Bitches on Built To Fail (Remastered)",
|
388
|
+
"Going to Pasalaqua (Live) by Green Day on Longview",
|
389
|
+
"Carnival Of Souls (feat. Demoz by Jedi Mind Tricks on Violence Begets Violence",
|
390
|
+
"Cowboy Coffee by The Mighty Mighty Bosstones on More Noise And Other Disturbances",
|
391
|
+
"Let Us Get Murdered by Andrew Jackson Jihad on Andrew Jackson Jihad/Ghost Mice Split"
|
392
|
+
]
|
393
|
+
},
|
394
|
+
"error" : null,
|
395
|
+
"method" : "jukebox"
|
396
|
+
}
|
397
|
+
}
|
398
|
+
```
|
399
|
+
|
400
|
+
## `list-albums`
|
401
|
+
|
402
|
+
Returns all albums in the index.
|
403
|
+
|
404
|
+
### Syntax
|
405
|
+
|
406
|
+
`list-albums`
|
407
|
+
|
408
|
+
### Example
|
409
|
+
|
410
|
+
```bash
|
411
|
+
$ muzak-cmd list-albums
|
412
|
+
```
|
413
|
+
|
414
|
+
### Example Response
|
415
|
+
|
416
|
+
```json
|
417
|
+
{
|
418
|
+
"response" : {
|
419
|
+
"error" : null,
|
420
|
+
"method" : "list_albums",
|
421
|
+
"data" : {
|
422
|
+
"artists" : [
|
423
|
+
"Album 1",
|
424
|
+
"Album 2",
|
425
|
+
"Album 3"
|
426
|
+
]
|
427
|
+
}
|
428
|
+
}
|
429
|
+
}
|
430
|
+
```
|
431
|
+
|
432
|
+
## `list-artists`
|
433
|
+
|
434
|
+
Returns all artists in the index.
|
435
|
+
|
436
|
+
### Syntax
|
437
|
+
|
438
|
+
`list-artists`
|
439
|
+
|
440
|
+
### Example
|
441
|
+
|
442
|
+
```bash
|
443
|
+
$ muzak-cmd list-artists
|
444
|
+
```
|
445
|
+
|
446
|
+
### Example Response
|
447
|
+
|
448
|
+
```json
|
449
|
+
{
|
450
|
+
"response" : {
|
451
|
+
"error" : null,
|
452
|
+
"method" : "list_artists",
|
453
|
+
"data" : {
|
454
|
+
"artists" : [
|
455
|
+
"Artist 1",
|
456
|
+
"Artist 2",
|
457
|
+
"Artist 3"
|
458
|
+
]
|
459
|
+
}
|
460
|
+
}
|
461
|
+
}
|
462
|
+
```
|
463
|
+
|
464
|
+
## `list-playlists`
|
465
|
+
|
466
|
+
Returns all available playlists.
|
467
|
+
|
468
|
+
### Syntax
|
469
|
+
|
470
|
+
`list-playlists`
|
471
|
+
|
472
|
+
### Example
|
473
|
+
|
474
|
+
```bash
|
475
|
+
$ muzak-cmd list-playlists
|
476
|
+
```
|
477
|
+
|
478
|
+
### Example Response
|
479
|
+
|
480
|
+
```json
|
481
|
+
{
|
482
|
+
"response" : {
|
483
|
+
"method" : "list_playlists",
|
484
|
+
"error" : null,
|
485
|
+
"data" : {
|
486
|
+
"playlists" : [
|
487
|
+
"favorites",
|
488
|
+
"dad-rock",
|
489
|
+
"best-of-2016"
|
490
|
+
]
|
491
|
+
}
|
492
|
+
}
|
493
|
+
}
|
494
|
+
```
|
495
|
+
|
496
|
+
## `list-plugins`
|
497
|
+
|
498
|
+
Returns all available plugins.
|
499
|
+
|
500
|
+
**Note:** This list will differ from the list of loaded plugins unless all
|
501
|
+
available plugins have been configured.
|
502
|
+
|
503
|
+
### Syntax
|
504
|
+
|
505
|
+
`list-plugins`
|
506
|
+
|
507
|
+
### Example
|
508
|
+
|
509
|
+
```bash
|
510
|
+
$ muzak-cmd list-plugins
|
511
|
+
```
|
512
|
+
|
513
|
+
### Example Response
|
514
|
+
|
515
|
+
```json
|
516
|
+
{
|
517
|
+
"response" : {
|
518
|
+
"data" : {
|
519
|
+
"plugins" : [
|
520
|
+
"stubplugin",
|
521
|
+
"notify",
|
522
|
+
"scrobble"
|
523
|
+
]
|
524
|
+
},
|
525
|
+
"error" : null,
|
526
|
+
"method" : "list_plugins"
|
527
|
+
}
|
528
|
+
}
|
529
|
+
```
|
530
|
+
|
531
|
+
## `list-queue`
|
532
|
+
|
533
|
+
Returns the player's playback queue.
|
534
|
+
|
535
|
+
**Note:** This may include already-played songs.
|
536
|
+
|
537
|
+
### Syntax
|
538
|
+
|
539
|
+
`list-queue`
|
540
|
+
|
541
|
+
### Example
|
542
|
+
|
543
|
+
```bash
|
544
|
+
$ muzak-cmd list-queue
|
545
|
+
```
|
546
|
+
|
547
|
+
### Example Response
|
548
|
+
|
549
|
+
```json
|
550
|
+
{
|
551
|
+
"response" : {
|
552
|
+
"error" : null,
|
553
|
+
"method" : "list_queue",
|
554
|
+
"data" : {
|
555
|
+
"queue" : [
|
556
|
+
"Song 1",
|
557
|
+
"Song 2",
|
558
|
+
"Song 3"
|
559
|
+
]
|
560
|
+
}
|
561
|
+
}
|
562
|
+
}
|
563
|
+
```
|
564
|
+
|
565
|
+
## `next`
|
566
|
+
|
567
|
+
Starts the next song in the player's queue.
|
568
|
+
|
569
|
+
### Syntax
|
570
|
+
|
571
|
+
`next`
|
572
|
+
|
573
|
+
### Example
|
574
|
+
|
575
|
+
```bash
|
576
|
+
$ muzak-cmd next
|
577
|
+
```
|
578
|
+
|
579
|
+
### Example Response
|
580
|
+
|
581
|
+
```json
|
582
|
+
{
|
583
|
+
"response" : {
|
584
|
+
"error" : null,
|
585
|
+
"method" : "next",
|
586
|
+
"data" : "null"
|
587
|
+
}
|
588
|
+
}
|
589
|
+
```
|
590
|
+
|
591
|
+
## `now-playing`
|
592
|
+
|
593
|
+
Returns the currently playing song.
|
594
|
+
|
595
|
+
### Syntax
|
596
|
+
|
597
|
+
`now-playing`
|
598
|
+
|
599
|
+
### Example
|
600
|
+
|
601
|
+
```bash
|
602
|
+
$ muzak-cmd now-playing
|
603
|
+
```
|
604
|
+
|
605
|
+
### Example Response
|
606
|
+
|
607
|
+
```json
|
608
|
+
{
|
609
|
+
"response" : {
|
610
|
+
"error" : null,
|
611
|
+
"data" : {
|
612
|
+
"playing" : "22 Offs by Chance The Rapper on 10 Day"
|
613
|
+
},
|
614
|
+
"method" : "now_playing"
|
615
|
+
}
|
616
|
+
}
|
617
|
+
```
|
618
|
+
|
619
|
+
## `pause`
|
620
|
+
|
621
|
+
Pauses the player.
|
622
|
+
|
623
|
+
### Syntax
|
624
|
+
|
625
|
+
`pause`
|
626
|
+
|
627
|
+
### Example
|
628
|
+
|
629
|
+
```bash
|
630
|
+
$ muzak-cmd pause
|
631
|
+
```
|
632
|
+
|
633
|
+
### Example Response
|
634
|
+
|
635
|
+
```json
|
636
|
+
{
|
637
|
+
"response" : {
|
638
|
+
"data" : null,
|
639
|
+
"method" : "pause",
|
640
|
+
"error" : null
|
641
|
+
}
|
642
|
+
}
|
643
|
+
```
|
644
|
+
|
645
|
+
## `ping`
|
646
|
+
|
647
|
+
Pings muzak to confirm that the instance is running as expected.
|
648
|
+
|
649
|
+
**Note**: This is mostly useful for debugging purposes.
|
650
|
+
|
651
|
+
### Syntax
|
652
|
+
|
653
|
+
`ping`
|
654
|
+
|
655
|
+
### Example
|
656
|
+
|
657
|
+
```bash
|
658
|
+
$ muzak-cmd ping
|
659
|
+
```
|
660
|
+
|
661
|
+
### Example Response
|
662
|
+
|
663
|
+
```json
|
664
|
+
{
|
665
|
+
"response" : {
|
666
|
+
"method" : "ping",
|
667
|
+
"error" : null,
|
668
|
+
"data" : {
|
669
|
+
"pong" : 1483395120
|
670
|
+
}
|
671
|
+
}
|
672
|
+
}
|
673
|
+
```
|
674
|
+
|
675
|
+
## `play`
|
676
|
+
|
677
|
+
Tells the play to play.
|
678
|
+
|
679
|
+
### Syntax
|
680
|
+
|
681
|
+
`play`
|
682
|
+
|
683
|
+
### Example
|
684
|
+
|
685
|
+
```bash
|
686
|
+
$ muzak-cmd play
|
687
|
+
```
|
688
|
+
|
689
|
+
### Example Response
|
690
|
+
|
691
|
+
```json
|
692
|
+
{
|
693
|
+
"response" : {
|
694
|
+
"error" : null,
|
695
|
+
"data" : null,
|
696
|
+
"method" : "play"
|
697
|
+
}
|
698
|
+
}
|
699
|
+
```
|
700
|
+
|
701
|
+
## `player-activate`
|
702
|
+
|
703
|
+
Activates the player.
|
704
|
+
|
705
|
+
**Note:** This will usually be done automatically when the user issues a command
|
706
|
+
that affects the playback state for the first time. Calling it manually may
|
707
|
+
be useful for debugging purposes.
|
708
|
+
|
709
|
+
### Syntax
|
710
|
+
|
711
|
+
### Example
|
712
|
+
|
713
|
+
```bash
|
714
|
+
$ muzak-cmd player-activate
|
715
|
+
```
|
716
|
+
|
717
|
+
### Example Response
|
718
|
+
|
719
|
+
```json
|
720
|
+
{
|
721
|
+
"response" : {
|
722
|
+
"error" : null,
|
723
|
+
"data" : {
|
724
|
+
"player": "Muzak::Player::MPV"
|
725
|
+
},
|
726
|
+
"method" : "player_activate"
|
727
|
+
}
|
728
|
+
}
|
729
|
+
```
|
730
|
+
|
731
|
+
## `player-deactivate`
|
732
|
+
|
733
|
+
Deactivates the player.
|
734
|
+
|
735
|
+
**Note:** This will usually be done automatically when muzak is quitting.
|
736
|
+
Calling it manually may be useful for debugging purposes.
|
737
|
+
|
738
|
+
### Syntax
|
739
|
+
|
740
|
+
### Example
|
741
|
+
|
742
|
+
```bash
|
743
|
+
$ muzak-cmd
|
744
|
+
```
|
745
|
+
|
746
|
+
### Example Response
|
747
|
+
|
748
|
+
```json
|
749
|
+
{
|
750
|
+
"response" : {
|
751
|
+
"error" : null,
|
752
|
+
"data" : {
|
753
|
+
"player": "Muzak::Player::MPV"
|
754
|
+
},
|
755
|
+
"method" : "player_deactivate"
|
756
|
+
}
|
757
|
+
}
|
758
|
+
```
|
759
|
+
|
760
|
+
## `playlist-add-album`
|
761
|
+
|
762
|
+
Adds the given album to the given playlist.
|
763
|
+
|
764
|
+
### Syntax
|
765
|
+
|
766
|
+
`playlist-add-album <playlist name> <album name>`
|
767
|
+
|
768
|
+
### Example
|
769
|
+
|
770
|
+
```bash
|
771
|
+
$ muzak-cmd playlist-add-album best-of-2016 Coloring Book
|
772
|
+
```
|
773
|
+
|
774
|
+
### Example Response
|
775
|
+
|
776
|
+
```json
|
777
|
+
{
|
778
|
+
"response" : {
|
779
|
+
"error" : null,
|
780
|
+
"data" : null,
|
781
|
+
"method" : "playlist_add_album"
|
782
|
+
}
|
783
|
+
}
|
784
|
+
```
|
785
|
+
|
786
|
+
## `playlist-add-artist`
|
787
|
+
|
788
|
+
Adds the given artist (i.e., their songs) to the given playlist.
|
789
|
+
|
790
|
+
### Syntax
|
791
|
+
|
792
|
+
`playlist-add-artist <playlist name> <artist name>`
|
793
|
+
|
794
|
+
### Example
|
795
|
+
|
796
|
+
```bash
|
797
|
+
$ muzak-cmd playlist-add-artist dad-rock The Beatles
|
798
|
+
```
|
799
|
+
|
800
|
+
### Example Response
|
801
|
+
|
802
|
+
```json
|
803
|
+
{
|
804
|
+
"response" : {
|
805
|
+
"error" : null,
|
806
|
+
"data" : null,
|
807
|
+
"method" : "playlist_add_artist"
|
808
|
+
}
|
809
|
+
}
|
810
|
+
```
|
811
|
+
|
812
|
+
## `playlist-add-current`
|
813
|
+
|
814
|
+
Adds the currently playing song to the given playlist.
|
815
|
+
|
816
|
+
### Syntax
|
817
|
+
|
818
|
+
`playlist-add-current <playlist name>`
|
819
|
+
|
820
|
+
### Example
|
821
|
+
|
822
|
+
```bash
|
823
|
+
$ muzak-cmd playlist-add-current favorites
|
824
|
+
```
|
825
|
+
|
826
|
+
### Example Response
|
827
|
+
|
828
|
+
```json
|
829
|
+
{
|
830
|
+
"response" : {
|
831
|
+
"error" : null,
|
832
|
+
"data" : null,
|
833
|
+
"method" : "playlist_add_current"
|
834
|
+
}
|
835
|
+
}
|
836
|
+
```
|
837
|
+
|
838
|
+
## `playlist-del-current`
|
839
|
+
|
840
|
+
Removes the currently playing song from the given playlist.
|
841
|
+
|
842
|
+
### Syntax
|
843
|
+
|
844
|
+
`playlist-del-current <playlist name>`
|
845
|
+
|
846
|
+
### Example
|
847
|
+
|
848
|
+
```bash
|
849
|
+
$ muzak-cmd playlist-del-current favorites
|
850
|
+
```
|
851
|
+
|
852
|
+
### Example Response
|
853
|
+
|
854
|
+
```json
|
855
|
+
{
|
856
|
+
"response" : {
|
857
|
+
"error" : null,
|
858
|
+
"data" : null,
|
859
|
+
"method" : "playlist_del_current"
|
860
|
+
}
|
861
|
+
}
|
862
|
+
```
|
863
|
+
|
864
|
+
## `playlist-delete`
|
865
|
+
|
866
|
+
Deletes the given playlist.
|
867
|
+
|
868
|
+
### Syntax
|
869
|
+
|
870
|
+
`playlist-delete <playlist name>`
|
871
|
+
|
872
|
+
### Example
|
873
|
+
|
874
|
+
```bash
|
875
|
+
$ muzak-cmd playlist-delete worst-of-2016
|
876
|
+
```
|
877
|
+
|
878
|
+
### Example Response
|
879
|
+
|
880
|
+
```json
|
881
|
+
{
|
882
|
+
"response" : {
|
883
|
+
"error" : null,
|
884
|
+
"data" : null,
|
885
|
+
"method" : "playlist_delete"
|
886
|
+
}
|
887
|
+
}
|
888
|
+
```
|
889
|
+
|
890
|
+
## `playlist-shuffle`
|
891
|
+
|
892
|
+
Shuffles the given playlist.
|
893
|
+
|
894
|
+
**Note:** If the playlist has already been enqueued, the playback order
|
895
|
+
is not affected.
|
896
|
+
|
897
|
+
### Syntax
|
898
|
+
|
899
|
+
`playlist-shuffle <playlist name>`
|
900
|
+
|
901
|
+
### Example
|
902
|
+
|
903
|
+
```bash
|
904
|
+
$ muzak-cmd playlist-shuffle favorites
|
905
|
+
```
|
906
|
+
|
907
|
+
### Example Response
|
908
|
+
|
909
|
+
```json
|
910
|
+
{
|
911
|
+
"response" : {
|
912
|
+
"error" : null,
|
913
|
+
"data" : null,
|
914
|
+
"method" : "playlist_shuffle"
|
915
|
+
}
|
916
|
+
}
|
917
|
+
```
|
918
|
+
|
919
|
+
## `previous`
|
920
|
+
|
921
|
+
Play the previous song in the player's queue.
|
922
|
+
|
923
|
+
### Syntax
|
924
|
+
|
925
|
+
`previous`
|
926
|
+
|
927
|
+
### Example
|
928
|
+
|
929
|
+
```bash
|
930
|
+
$ muzak-cmd previous
|
931
|
+
```
|
932
|
+
|
933
|
+
### Example Response
|
934
|
+
|
935
|
+
```json
|
936
|
+
{
|
937
|
+
"response" : {
|
938
|
+
"error" : null,
|
939
|
+
"data" : null,
|
940
|
+
"method" : "previous"
|
941
|
+
}
|
942
|
+
}
|
943
|
+
```
|
944
|
+
|
945
|
+
## `quit`
|
946
|
+
|
947
|
+
Terminates muzak.
|
948
|
+
|
949
|
+
**Note:** This terminates the {Muzak::Instance}, meaning that clients/interfaces
|
950
|
+
are expected to terminate as well.
|
951
|
+
|
952
|
+
### Syntax
|
953
|
+
|
954
|
+
`quit`
|
955
|
+
|
956
|
+
### Example
|
957
|
+
|
958
|
+
```bash
|
959
|
+
$ muzak-cmd quit
|
960
|
+
```
|
961
|
+
|
962
|
+
### Example Response
|
963
|
+
|
964
|
+
```json
|
965
|
+
{
|
966
|
+
"response" : {
|
967
|
+
"error" : null,
|
968
|
+
"data" : "quitting",
|
969
|
+
"method" : "quit"
|
970
|
+
}
|
971
|
+
}
|
972
|
+
```
|
973
|
+
|
974
|
+
## `shuffle-queue`
|
975
|
+
|
976
|
+
Shuffles the player's playback queue.
|
977
|
+
|
978
|
+
### Syntax
|
979
|
+
|
980
|
+
`shuffle-queue`
|
981
|
+
|
982
|
+
### Example
|
983
|
+
|
984
|
+
```bash
|
985
|
+
$ muzak-cmd shuffle-queue
|
986
|
+
```
|
987
|
+
|
988
|
+
### Example Response
|
989
|
+
|
990
|
+
```json
|
991
|
+
{
|
992
|
+
"response" : {
|
993
|
+
"error" : null,
|
994
|
+
"data" : null,
|
995
|
+
"method" : "shuffle_queue"
|
996
|
+
}
|
997
|
+
}
|
998
|
+
```
|
999
|
+
|
1000
|
+
## `songs-by-artist`
|
1001
|
+
|
1002
|
+
Returns all songs by the given artist.
|
1003
|
+
|
1004
|
+
### Syntax
|
1005
|
+
|
1006
|
+
`songs-by-artist <artist name>`
|
1007
|
+
|
1008
|
+
### Example
|
1009
|
+
|
1010
|
+
```bash
|
1011
|
+
$ muzak-cmd songs-by-artist "Bob Dylan"
|
1012
|
+
```
|
1013
|
+
|
1014
|
+
### Example Response
|
1015
|
+
|
1016
|
+
```json
|
1017
|
+
{
|
1018
|
+
"response" : {
|
1019
|
+
"error" : null,
|
1020
|
+
"data" : {
|
1021
|
+
"songs" : [
|
1022
|
+
"The Times They Are A' Changing",
|
1023
|
+
"Hurricane",
|
1024
|
+
"All Along the Watchtower"
|
1025
|
+
]
|
1026
|
+
},
|
1027
|
+
"method" : "songs_by_artist"
|
1028
|
+
}
|
1029
|
+
}
|
1030
|
+
|
1031
|
+
```
|
1032
|
+
|
1033
|
+
## `toggle`
|
1034
|
+
|
1035
|
+
Toggles the playback state of the player.
|
1036
|
+
|
1037
|
+
### Syntax
|
1038
|
+
|
1039
|
+
`toggle`
|
1040
|
+
|
1041
|
+
### Example
|
1042
|
+
|
1043
|
+
```bash
|
1044
|
+
$ muzak-cmd toggle
|
1045
|
+
```
|
1046
|
+
|
1047
|
+
### Example Response
|
1048
|
+
|
1049
|
+
```json
|
1050
|
+
{
|
1051
|
+
"response" : {
|
1052
|
+
"error" : null,
|
1053
|
+
"data" : null,
|
1054
|
+
"method" : "toggle"
|
1055
|
+
}
|
1056
|
+
}
|
1057
|
+
```
|
1058
|
+
|
data/lib/muzak/const.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: muzak
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Woodruff
|
@@ -34,6 +34,7 @@ extensions: []
|
|
34
34
|
extra_rdoc_files: []
|
35
35
|
files:
|
36
36
|
- ".yardopts"
|
37
|
+
- COMMANDS.md
|
37
38
|
- LICENSE
|
38
39
|
- README.md
|
39
40
|
- bin/muzak-cmd
|