alexa_remotectl 0.4.3 → 0.4.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/alexa_remotectl.rb +59 -7
- data.tar.gz.sig +0 -0
- metadata +2 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5b2029c701df7521e20261071499fcdd877858b75ef7c6257ada56fa0e83f390
|
4
|
+
data.tar.gz: 2cb5831f0c13db113c7991954940cef62e2a4ad90fd8ee66c50e17a028e3ae8a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 282e5aad4855e6a1aa67057d4f71ad786044c3c379ecfce3070c34770b396e5dca16de73d604d6a37b6713e29fbe854c44f0fcdf336276680cbaeab5fc2a91e9
|
7
|
+
data.tar.gz: 8af80f421ff7423c5bd729ea3bd9ef0c4b3f150e35cbb79eb28abfbd3771a223f939d31d904e665a09bf69187c75625e8256e66474182072e3b138327a2aa830
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/alexa_remotectl.rb
CHANGED
@@ -13,7 +13,7 @@ require 'json'
|
|
13
13
|
# Use the CodeWizard with the cURL command you've copied using Developer
|
14
14
|
# tools on Alexa's SPA page (within the web browser).
|
15
15
|
#
|
16
|
-
# note: to find the correct url to convert, try
|
16
|
+
# note: to find the correct url to convert, try clicking on pause or play to
|
17
17
|
# invoke an AJAX request
|
18
18
|
|
19
19
|
class CodeWizard
|
@@ -70,13 +70,29 @@ class AlexaRemoteCtl
|
|
70
70
|
|
71
71
|
end
|
72
72
|
|
73
|
+
# Some audio streams can't be paused through the SPA API. Playing a
|
74
|
+
# historical queue, and then pausing it, is the best next option.
|
75
|
+
#
|
76
|
+
def force_pause()
|
77
|
+
|
78
|
+
r = list_hq()
|
79
|
+
queueid = r[:media][0][:queueId]
|
80
|
+
|
81
|
+
play_hq queueid
|
82
|
+
sleep 1
|
83
|
+
|
84
|
+
pause()
|
85
|
+
|
86
|
+
end
|
87
|
+
|
73
88
|
def info()
|
74
89
|
device_player()[:playerInfo]
|
75
90
|
end
|
76
91
|
|
77
92
|
def list_ebooks()
|
78
|
-
get_json '/api/ebooks/library', "mediaOwnerCustomerId=#{@customerid}" +
|
93
|
+
r = get_json '/api/ebooks/library', "mediaOwnerCustomerId=#{@customerid}" +
|
79
94
|
"&nextToken=&size=50"
|
95
|
+
r[:metadataList]
|
80
96
|
end
|
81
97
|
|
82
98
|
# list historical queue (hq)
|
@@ -104,7 +120,13 @@ class AlexaRemoteCtl
|
|
104
120
|
pp_cmd('Play')
|
105
121
|
end
|
106
122
|
|
107
|
-
def play_ebook(
|
123
|
+
def play_ebook(obj)
|
124
|
+
|
125
|
+
id = if obj.is_a? Integer then
|
126
|
+
list_ebook()[obj][:asin]
|
127
|
+
else
|
128
|
+
obj
|
129
|
+
end
|
108
130
|
|
109
131
|
serialno = @device[:serialno]
|
110
132
|
type = @device[:type]
|
@@ -125,7 +147,15 @@ class AlexaRemoteCtl
|
|
125
147
|
# play historical queue
|
126
148
|
# note: You can find the queueid from an entry in the list_hq() result
|
127
149
|
#
|
128
|
-
def play_hq(
|
150
|
+
def play_hq(obj)
|
151
|
+
|
152
|
+
queueid = if obj.is_a? Integer then
|
153
|
+
r = list_hq()
|
154
|
+
r[:media][obj][:queueId]
|
155
|
+
else
|
156
|
+
obj
|
157
|
+
end
|
158
|
+
|
129
159
|
device_phq(queueid)
|
130
160
|
end
|
131
161
|
|
@@ -164,6 +194,8 @@ class AlexaRemoteCtl
|
|
164
194
|
device_cmd(body)
|
165
195
|
end
|
166
196
|
|
197
|
+
alias setvol vol=
|
198
|
+
|
167
199
|
private
|
168
200
|
|
169
201
|
# play, pause, or next
|
@@ -310,6 +342,7 @@ class AlexaDevices
|
|
310
342
|
|
311
343
|
end
|
312
344
|
|
345
|
+
def force_pause(id) invoke(:force_pause, id) end
|
313
346
|
def info(id=nil) invoke(:info, id) end
|
314
347
|
def list_ebooks(id) invoke(:list_ebooks, id) end
|
315
348
|
def list_hq(id=nil) invoke(:list_hq, id) end
|
@@ -337,12 +370,12 @@ class AlexaDevices
|
|
337
370
|
def play(id) invoke(:play, id) end
|
338
371
|
def play_ebook(id) invoke(:list_hq, id) end
|
339
372
|
def play_hq(id,qid) invoke(:play_hq, id, qid) end
|
340
|
-
def playing?(id=nil) invoke(:playing
|
373
|
+
def playing?(id=nil) invoke(:playing?, id) end
|
341
374
|
def text1(id=nil) invoke2(:text1, id) end
|
342
375
|
def text2(id=nil) invoke2(:text2, id) end
|
343
376
|
def title(id=nil) invoke2(:title, id) end
|
344
377
|
def vol(id=nil) invoke(:vol, id) end
|
345
|
-
def
|
378
|
+
def setvol(id=nil, level) invoke(:setvol, id, level) end
|
346
379
|
|
347
380
|
private
|
348
381
|
|
@@ -373,6 +406,25 @@ class AlexaDevices
|
|
373
406
|
end
|
374
407
|
end
|
375
408
|
|
409
|
+
def apply_cmd2(a, cmd, id, args)
|
410
|
+
|
411
|
+
if id then
|
412
|
+
|
413
|
+
alexa, _ = a.find {|_, label| label.to_sym == id.to_sym}
|
414
|
+
alexa.method(cmd).call(*args)
|
415
|
+
|
416
|
+
else
|
417
|
+
|
418
|
+
a.map do |alexa, label|
|
419
|
+
|
420
|
+
puts cmd.to_s + ' @' + label.inspect
|
421
|
+
alexa.method(cmd).call(*args)
|
422
|
+
|
423
|
+
end
|
424
|
+
|
425
|
+
end
|
426
|
+
end
|
427
|
+
|
376
428
|
def invoke(cmd, id, *args)
|
377
429
|
apply_cmd(@devices, cmd, id, args)
|
378
430
|
end
|
@@ -380,7 +432,7 @@ class AlexaDevices
|
|
380
432
|
# apply command to an Alexa device which is currently playing
|
381
433
|
#
|
382
434
|
def invoke2(cmd, id, *args)
|
383
|
-
|
435
|
+
apply_cmd2(playing(), cmd, id, args)
|
384
436
|
end
|
385
437
|
|
386
438
|
end
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alexa_remotectl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
35
35
|
d/gEwBtUmduwWZNX2NOJehf8s1cnH9OBP7s1ziHjdkZCgkQm3QewRRcdfZeYwFi6
|
36
36
|
4kVEcApgAgd+04ctE6uiRn5o
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date: 2022-05-
|
38
|
+
date: 2022-05-24 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: clipboard
|
metadata.gz.sig
CHANGED
Binary file
|