ruby-macrodroid 0.9.12 → 0.9.13

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f551fa79f564fe3e791b75d0bd3b5dabafd8c90b47980c5c77ab344d8b5612db
4
- data.tar.gz: 2f5b9fe15f59cf9abfd628c7050d40229104ac1137780be6d7a9723214dbff73
3
+ metadata.gz: 0c63b70d5cc34184d15c46395e1add89a6c8999163d4fb1e9362aa80a568dba4
4
+ data.tar.gz: 797fab9bff840db398067dc5b99ac53bb3d3129668573728c31aa0883a28d792
5
5
  SHA512:
6
- metadata.gz: fecd36b6b6da15005cfde4259886dfde7f37538d3217026958174b53a8eab4bf4af3f8903f3504f6291fdb5bce2435292d65f41904a47640486a97e1dc72be9c
7
- data.tar.gz: 59b920327286062d098054a4225c36c0b4ab054ae98bac8c8100f5beb55cc45ee87c8f8d51cc10506a12b172fcaed6024ba4d4384233b5215062b2d127fd5e38
6
+ metadata.gz: 2bbf5ca42c6fe1be4eeeda1ba597bc4be3f0944e7a871785b629d5344268bd65d3c560fcf65de0e5b0a619c075a31f6f61eea1d8eefbd29d066777f9fb414584
7
+ data.tar.gz: 139c4462602b86d49d87d9b2e73873354550b67c8bc435bfed41d6fe6434419d4cbdfef375efdc659978e012bbb8bb9d685a08d1d75f63ae0a403a6796295da7
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -888,8 +888,17 @@ end
888
888
  #
889
889
  class SayTimeAction < DateTimeAction
890
890
 
891
- def initialize(h={})
892
-
891
+ def initialize(obj=nil)
892
+
893
+ h = if obj.is_a? Hash then
894
+ obj
895
+ elsif obj.is_a? Array
896
+
897
+ e, macro = obj
898
+ {:'12_hour' => e.text('item/description').to_s[/^\d+/] == '12'}
899
+
900
+ end
901
+
893
902
  options = {
894
903
  :'12_hour' => true
895
904
  }
@@ -910,7 +919,9 @@ class SayTimeAction < DateTimeAction
910
919
  end
911
920
 
912
921
  def to_s(colour: false, indent: 0)
913
- 'Say Current Time'
922
+ @s = 'Say Current Time'
923
+ @s += "\n%s hour clock" % (@h[:'12_hour'] ? '12' : '24')
924
+ super()
914
925
  end
915
926
 
916
927
  end
@@ -35,6 +35,7 @@ module ObjectX
35
35
  puts 'r: ' + r.inspect if debug
36
36
 
37
37
  nested = description.element('item/description')
38
+ puts 'nested: ' + nested.inspect if debug
38
39
 
39
40
  if r[1].any? and not nested then
40
41
 
@@ -204,6 +205,7 @@ class MacroObject
204
205
  new_key = key.to_s.gsub(/\w_\w/){|x| x[0] + x[-1].upcase}
205
206
  new_key = new_key.prepend 'm_' unless @list.include? new_key
206
207
  new_key = 'm_SIGUID' if new_key == 'm_siguid'
208
+ new_key = 'm_SSIDList' if new_key == 'm_ssidList'
207
209
  new_val = value.is_a?(Hash) ? hashify(value) : value
208
210
  r.merge(new_key => new_val)
209
211
  end
@@ -268,7 +268,7 @@ class Macro
268
268
  r = tp.find_trigger trigger
269
269
  puts 'r: ' + r.inspect if @debug
270
270
  #o = r[0].new([description, self]) if r
271
- o = object_create(r[0], [description, self]) if r
271
+ o = object_create(r[0], [description, self, r[1]]) if r
272
272
  puts 'after o' if @debug
273
273
  o
274
274
 
@@ -61,6 +61,7 @@ class Trigger < MacroObject
61
61
  {|x| 'c: ' + x.to_summary(colour: colour, indent: 1)}.join(" %s " % operator)
62
62
 
63
63
  @constraints.any? ? @s + "\n" + constraints : @s
64
+ super()
64
65
 
65
66
  end
66
67
 
@@ -85,7 +86,7 @@ end
85
86
  # ["Any Network"]
86
87
  # ["some Wifi SSID"] - 1 or more SSID can be supplied
87
88
 
88
- class WifiConnectionTrigger < Trigger
89
+ class WifiConnectionTrigger2 < Trigger
89
90
 
90
91
  def initialize(h={})
91
92
 
@@ -216,7 +217,7 @@ class PowerButtonToggleTrigger < Trigger
216
217
  end
217
218
 
218
219
  def to_s(colour: false)
219
- 'PowerButtonToggleTrigger ' + @h.inspect
220
+ "Power Button Toggle (%s)" % @h[:num_toggles] #+ @h.inspect
220
221
  end
221
222
 
222
223
  alias to_summary to_s
@@ -457,7 +458,7 @@ class WebHookTrigger < Trigger
457
458
 
458
459
  url = "https://trigger.macrodroid.com/%s/%s" % \
459
460
  [@deviceid, @h[:identifier]]
460
- @s = 'WebHook (Url)' + "\n " + url
461
+ @s = 'WebHook (Url)' + "\n" + url
461
462
  super()
462
463
 
463
464
  end
@@ -469,8 +470,15 @@ end
469
470
  #
470
471
  class WifiConnectionTrigger < Trigger
471
472
 
472
- def initialize(h={})
473
+ def initialize(obj=nil)
473
474
 
475
+ h = if obj.is_a? Hash then
476
+ obj
477
+ elsif obj.is_a? Array
478
+ e, macro = obj
479
+ {ssid_list: [e.text('item/description').to_s], wifi_state: 2}
480
+ end
481
+
474
482
  options = {
475
483
  ssid_list: [],
476
484
  wifi_state: 0
@@ -482,10 +490,15 @@ class WifiConnectionTrigger < Trigger
482
490
 
483
491
  def to_s(colour: false)
484
492
  access_point = @h[:ssid_list].first
485
- 'Connected to network ' + access_point
493
+ @s = 'Connected to network'
494
+ @s += "\n" + access_point
495
+ super()
486
496
  end
487
497
 
488
- alias to_summary to_s
498
+ def to_summary()
499
+ access_point = @h[:ssid_list].first
500
+ 'Connected to network' + access_point
501
+ end
489
502
  end
490
503
 
491
504
  # Category: Connectivity
@@ -1010,7 +1023,7 @@ class MusicPlayingTrigger < DeviceEventsTrigger
1010
1023
  def to_s(colour: false)
1011
1024
 
1012
1025
  event = @h[:option] == 0 ? 'Started' : 'Stopped'
1013
- @s = 'Music/Sound Playing' + "\n %s" % event #+ @h.inspect
1026
+ @s = 'Music/Sound Playing' + "\n%s" % event #+ @h.inspect
1014
1027
  super()
1015
1028
 
1016
1029
  end
@@ -1026,8 +1039,15 @@ end
1026
1039
  #
1027
1040
  class NFCTrigger < DeviceEventsTrigger
1028
1041
 
1029
- def initialize(h={})
1030
-
1042
+ def initialize(obj=nil)
1043
+
1044
+ h = if obj.is_a? Hash then
1045
+ obj
1046
+ elsif obj.is_a? Array
1047
+ e, macro = obj
1048
+ {tag_name: e.text('item/description').to_s}
1049
+ end
1050
+
1031
1051
  options = {
1032
1052
  }
1033
1053
 
@@ -1367,8 +1387,24 @@ end
1367
1387
  #
1368
1388
  class ActivityRecognitionTrigger < SensorsTrigger
1369
1389
 
1370
- def initialize(h={})
1371
-
1390
+ def initialize(obj=nil)
1391
+
1392
+ #puts 'obj: ' + obj.inspect
1393
+
1394
+ h = if obj.is_a? Hash then
1395
+
1396
+ obj
1397
+
1398
+ elsif obj.is_a? Array
1399
+
1400
+ e, macro, h2 = obj
1401
+ #puts 'h2: ' + h2.inspect
1402
+ #puts 'e: ' + e.xml
1403
+ s = e.text('item/description').to_s
1404
+ #puts 's: ' + s.inspect
1405
+ {confidence_level: s[/\d+%$/].to_i}.merge h2
1406
+ end
1407
+
1372
1408
  options = {
1373
1409
  confidence_level: 50,
1374
1410
  selected_index: 1
@@ -1381,8 +1417,13 @@ class ActivityRecognitionTrigger < SensorsTrigger
1381
1417
  end
1382
1418
 
1383
1419
  def to_s(colour: false)
1420
+
1384
1421
  activity = @activity[@h[:selected_index]]
1385
- 'Activity - ' + activity
1422
+ @s = 'Activity - ' + activity #+ @h.inspect
1423
+ @s += "\nConfidence >= %s%%" % @h[:confidence_level]
1424
+
1425
+ super()
1426
+
1386
1427
  end
1387
1428
 
1388
1429
  def to_summary(colour: false)
@@ -1577,7 +1618,7 @@ class ShortcutTrigger < Trigger
1577
1618
  end
1578
1619
 
1579
1620
  def to_s(colour: false)
1580
- 'ShortcutTrigger ' + @h.inspect
1621
+ 'Shortcut Launched' #+ @h.inspect
1581
1622
  end
1582
1623
 
1583
1624
  alias to_summary to_s
@@ -1633,8 +1674,15 @@ end
1633
1674
  #
1634
1675
  class MediaButtonPressedTrigger < Trigger
1635
1676
 
1636
- def initialize(h={})
1677
+ def initialize(obj=nil)
1637
1678
 
1679
+ h = if obj.is_a? Hash then
1680
+ obj
1681
+ elsif obj.is_a? Array
1682
+ e, macro = obj
1683
+ {option: e.text('item/description').to_s}
1684
+ end
1685
+
1638
1686
  options = {
1639
1687
  option: 'Single Press',
1640
1688
  cancel_press: false
@@ -1645,7 +1693,50 @@ class MediaButtonPressedTrigger < Trigger
1645
1693
  end
1646
1694
 
1647
1695
  def to_s(colour: false)
1648
- 'MediaButtonPressedTrigger ' + @h.inspect
1696
+
1697
+ @s = 'Media Button Pressed ' #+ @h.inspect
1698
+ @s += "\n" + @h[:option]
1699
+ super()
1700
+
1701
+ end
1702
+
1703
+ alias to_summary to_s
1704
+ end
1705
+
1706
+ class MediaButtonV2Trigger < Trigger
1707
+
1708
+ def initialize(obj=nil)
1709
+
1710
+ @a = %w(Play Play/Pause Pause Stop Previous Next Headset Hook)
1711
+
1712
+ h = if obj.is_a? Hash then
1713
+ obj
1714
+ elsif obj.is_a? Array
1715
+ e, macro = obj
1716
+ s = e.text('item/description').to_s
1717
+ a = s.split(/, /)
1718
+ {options_enabled_array: @a.map {|x| a.include? x } }
1719
+ end
1720
+
1721
+
1722
+
1723
+ options = {
1724
+ options_enabled_array: [true, false, false, false, false, false, false]
1725
+ }
1726
+
1727
+ super(options.merge h)
1728
+
1729
+ end
1730
+
1731
+ def to_s(colour: false)
1732
+
1733
+
1734
+ options = @a.zip(@h[:options_enabled_array]).select(&:last).map(&:first)
1735
+
1736
+ @s = 'Media Button V2 ' #+ @h.inspect
1737
+ @s += "\n" + options.join(', ')
1738
+ super()
1739
+
1649
1740
  end
1650
1741
 
1651
1742
  alias to_summary to_s
@@ -1655,8 +1746,22 @@ end
1655
1746
  #
1656
1747
  class SwipeTrigger < Trigger
1657
1748
 
1658
- def initialize(h={})
1659
-
1749
+ def initialize(obj=nil)
1750
+
1751
+ h = if obj.is_a? Hash then
1752
+ obj
1753
+ elsif obj.is_a? Array
1754
+
1755
+ e, macro = obj
1756
+ s = e.text('item/description').to_s
1757
+ start, motion = s.split(/ - /,2)
1758
+
1759
+ {
1760
+ swipe_start_area: ['Top Left', 'Top Right'].index(start),
1761
+ swipe_motion: %w(Across Diagonal Down).index(motion)
1762
+ }
1763
+ end
1764
+
1660
1765
  options = {
1661
1766
  swipe_start_area: 0,
1662
1767
  swipe_motion: 0,
@@ -1668,7 +1773,12 @@ class SwipeTrigger < Trigger
1668
1773
  end
1669
1774
 
1670
1775
  def to_s(colour: false)
1671
- 'SwipeTrigger ' + @h.inspect
1776
+
1777
+ direction = [['Top Left', 'Top Right'][@h[:swipe_start_area]],
1778
+ %w(Across Diagonal Down)[@h[:swipe_motion]]].join(' - ')
1779
+ @s = 'Swipe Screen'# + @h.inspect
1780
+ @s += "\n" + direction
1781
+ super()
1672
1782
  end
1673
1783
 
1674
1784
  alias to_summary to_s
@@ -19,6 +19,10 @@ class TriggersNlp
19
19
 
20
20
  # -- Battery/Power ---------------------------------------------
21
21
 
22
+ get /Power Button Toggle \((\d)\)/i do |num|
23
+ [PowerButtonToggleTrigger, {num_toggles: num.to_i}]
24
+ end
25
+
22
26
  get /^Power Connected: (Wired \([^\)]+\))/i do |s|
23
27
 
24
28
  h = {
@@ -50,7 +54,24 @@ class TriggersNlp
50
54
  [ExternalPowerTrigger, h]
51
55
  end
52
56
 
57
+ # -- Connectivity ----------------------------------------------------
58
+ #
59
+
60
+ # Wifi State Change
61
+
62
+ get /^Connected to network (.*)$/i do |network|
63
+ [WifiConnectionTrigger, {ssid_list: [network], wifi_state: 2 }]
64
+ end
65
+
66
+ get /^Connected to network$/i do
67
+ [WifiConnectionTrigger, {}]
68
+ end
69
+
53
70
  # -- Device Events ----------------------------------------------------
71
+
72
+ get /^NFC Tag$/i do |state|
73
+ [NFCTrigger, {}]
74
+ end
54
75
 
55
76
  get /^Screen[ _](On|Off)/i do |state|
56
77
  [ScreenOnOffTrigger, {screen_on: state.downcase == 'on'}]
@@ -132,11 +153,39 @@ class TriggersNlp
132
153
  [WebHookTrigger, params]
133
154
  end
134
155
 
135
- # MacroDroid specific ---------------------------------------------------------------
156
+ #-- MacroDroid specific ---------------------------------------------------------------
136
157
 
137
158
  get /^EmptyTrigger$/i do
138
159
  [EmptyTrigger, params]
139
- end
160
+ end
161
+
162
+ #-- Sensors ---------------------------------------------------------------
163
+
164
+ get /^Activity - (.*)$/i do |s|
165
+
166
+ a = ['In Vehicle', 'On Bicycle', 'Running', 'Walking', 'Still']
167
+ r = a.find {|x| x.downcase == s.downcase}
168
+ h = r ? {selected_index: a.index(r)} : {}
169
+ [ActivityRecognitionTrigger , h]
170
+ end
171
+
172
+ # -- User Input ---------------------------------------------------------------
173
+
174
+ get /^Media Button Pressed$/i do
175
+ [MediaButtonPressedTrigger, {}]
176
+ end
177
+
178
+ get /^Media Button V2$/i do
179
+ [MediaButtonV2Trigger, {}]
180
+ end
181
+
182
+ get /^Shortcut Launched$/i do
183
+ [ShortcutTrigger, {}]
184
+ end
185
+
186
+ get /^Swipe Screen$/i do
187
+ [SwipeTrigger, {}]
188
+ end
140
189
 
141
190
  end
142
191
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-macrodroid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.12
4
+ version: 0.9.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -35,7 +35,7 @@ cert_chain:
35
35
  NZ2kdBIUDnAM24e0/wXdVxg4HnsZbdymxyzMQ4P5pKYcpI6oisBxI37p/Xy+wAg3
36
36
  SBHno3GEuuD8ZWj24IMJpfbp
37
37
  -----END CERTIFICATE-----
38
- date: 2020-10-19 00:00:00.000000000 Z
38
+ date: 2020-10-20 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: glw
metadata.gz.sig CHANGED
Binary file