ruby-macrodroid 0.9.6 → 0.9.11

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.
@@ -1199,6 +1199,11 @@ class ScreenOnOffTrigger < DeviceEventsTrigger
1199
1199
 
1200
1200
  end
1201
1201
 
1202
+ def match?(detail={}, model=nil)
1203
+ #@h[:screen_on] == detail[:screen_on]
1204
+ true
1205
+ end
1206
+
1202
1207
  def to_s(colour: false)
1203
1208
  'Screen ' + (@h[:screen_on] ? 'On' : 'Off')
1204
1209
  end
@@ -0,0 +1,150 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # file: triggersnlp.rb
4
+
5
+
6
+ class TriggersNlp
7
+ include AppRoutes
8
+ using ColouredText
9
+
10
+ def initialize(macro=nil)
11
+
12
+ super()
13
+ params = {macro: macro}
14
+ triggers(params)
15
+
16
+ end
17
+
18
+ def triggers(params)
19
+
20
+ # -- Battery/Power ---------------------------------------------
21
+
22
+ get /^Power Connected: (Wired \([^\)]+\))/i do |s|
23
+
24
+ h = {
25
+ power_connected_options: [true, true, true],
26
+ has_set_usb_option: true,
27
+ power_connected: true
28
+ }
29
+
30
+ a = ['Wired (Fast Charge)', 'Wireless', 'Wired (Slow Charge)']
31
+
32
+ puts ('s: ' + s.inspect).debug
33
+
34
+ options = s.downcase.split(/ \+ /)
35
+ puts ('options: ' + options.inspect).debug
36
+
37
+ h[:power_connected_options] = a.map {|x| options.include? x.downcase }
38
+
39
+ [ExternalPowerTrigger, h]
40
+ end
41
+
42
+ get /^Power Connected: Any/i do |s|
43
+
44
+ h = {
45
+ power_connected_options: [true, true, true],
46
+ has_set_usb_option: true,
47
+ power_connected: true
48
+ }
49
+
50
+ [ExternalPowerTrigger, h]
51
+ end
52
+
53
+ # -- Device Events ----------------------------------------------------
54
+
55
+ get /^Screen[ _](On|Off)/i do |state|
56
+ [ScreenOnOffTrigger, {screen_on: state.downcase == 'on'}]
57
+ end
58
+
59
+ # e.g. at 7:30pm daily
60
+ get /^(?:at )?(\d+:\d+(?:[ap]m)?) daily/i do |time, days|
61
+ [TimerTrigger, {time: time,
62
+ days: %w(Mon Tue Wed Thu Fri Sat Sun).join(', ')}]
63
+ end
64
+
65
+ get /^(?:at )?(\d+:\d+(?:[ap]m)?) (?:on )?(.*)/i do |time, days|
66
+ [TimerTrigger, {time: time, days: days}]
67
+ end
68
+
69
+ # time.is? 'at 18:30pm on Mon or Tue'
70
+ get /^time.is\? ['"](?:at )?(\d+:\d+(?:[ap]m)?) (?:on )?(.*)['"]/i do |time, days|
71
+ [TimerTrigger, {time: time, days: days.gsub(' or ',', ')}]
72
+ end
73
+
74
+ get /^shake[ _]device\??$/i do
75
+ [ShakeDeviceTrigger, {}]
76
+ end
77
+
78
+ get /^Flip Device (.*)$/i do |motion|
79
+ facedown = motion =~ /Face Up (?:->|to) Face Down/i
80
+ [FlipDeviceTrigger, {face_down: facedown }]
81
+ end
82
+
83
+ get /^flip_device_down\?$/i do
84
+ [FlipDeviceTrigger, {face_down: true }]
85
+ end
86
+
87
+ get /^flip_device_up\?$/i do
88
+ [FlipDeviceTrigger, {face_down: false }]
89
+ end
90
+
91
+ get /^Failed Login Attempt$/i do
92
+ [FailedLoginTrigger, {}]
93
+ end
94
+
95
+ get /^failed_login?$/i do
96
+ [FailedLoginTrigger, {}]
97
+ end
98
+
99
+ get /^Geofence (Entry|Exit) \(([^\)]+)/i do |direction, name|
100
+ enter_area = direction.downcase.to_sym == :entry
101
+ [GeofenceTrigger, {name: name, enter_area: enter_area}]
102
+ end
103
+
104
+ get /^location (entered|exited) \(([^\)]+)/i do |direction, name|
105
+ enter_area = direction.downcase.to_sym == :entered
106
+ [GeofenceTrigger, {name: name, enter_area: enter_area}]
107
+ end
108
+
109
+ # eg. Proximity Sensor (Near)
110
+ #
111
+ get /^Proximity Sensor \(([^\)]+)\)/i do |distance|
112
+
113
+ [ProximityTrigger, {distance: distance}]
114
+ end
115
+
116
+ # eg. Proximity near
117
+ #
118
+ get /^Proximity (near|far|slow wave|fast wave)/i do |distance|
119
+
120
+ [ProximityTrigger, {distance: distance}]
121
+ end
122
+
123
+ get /^WebHook \(Url\)/i do
124
+ [WebHookTrigger, params]
125
+ end
126
+
127
+ get /^WebHook/i do
128
+ [WebHookTrigger, params]
129
+ end
130
+
131
+ get /^wh/i do
132
+ [WebHookTrigger, params]
133
+ end
134
+
135
+ # MacroDroid specific ---------------------------------------------------------------
136
+
137
+ get /^EmptyTrigger$/i do
138
+ [EmptyTrigger, params]
139
+ end
140
+
141
+ end
142
+
143
+ alias find_trigger run_route
144
+
145
+ def to_s(colour: false)
146
+ 'TriggersNlp ' + @h.inspect
147
+ end
148
+
149
+ alias to_summary to_s
150
+ end
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.6
4
+ version: 0.9.11
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-13 00:00:00.000000000 Z
38
+ date: 2020-10-19 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: glw
@@ -185,10 +185,13 @@ extra_rdoc_files: []
185
185
  files:
186
186
  - lib/ruby-macrodroid.rb
187
187
  - lib/ruby-macrodroid/actions.rb
188
+ - lib/ruby-macrodroid/actionsnlp.rb
188
189
  - lib/ruby-macrodroid/base.rb
189
190
  - lib/ruby-macrodroid/constraints.rb
191
+ - lib/ruby-macrodroid/constraintsnlp.rb
190
192
  - lib/ruby-macrodroid/macro.rb
191
193
  - lib/ruby-macrodroid/triggers.rb
194
+ - lib/ruby-macrodroid/triggersnlp.rb
192
195
  homepage: https://github.com/jrobertson/ruby-macrodroid
193
196
  licenses:
194
197
  - MIT
metadata.gz.sig CHANGED
Binary file