ruby-macrodroid 0.9.7 → 0.9.12

Sign up to get free protection for your applications and to get access to all the features.
@@ -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.7
4
+ version: 0.9.12
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-14 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