ruby-macrodroid 0.5.0 → 0.5.1
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
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/ruby-macrodroid.rb +103 -12
- metadata +8 -8
- 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: c73d4f6bcddec53817e6ae7c59224759e58dd490ab53b2cab91728ceb98961f7
|
4
|
+
data.tar.gz: 37887f1b46a2158d5101b2c51ae444016dcf34606df34f8e6f58aed05482efb9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6bb6b3059e62aa4ce7924207a6fe545bc5b588d4ea4eab315361be595c47f343602a617dc7c2fdbc4701b44456dfcd18b255dc0fccfd904f7b56b5455f6f67a4
|
7
|
+
data.tar.gz: 2b7f77a7b582a0a8d7beda8ba09d10973e06a4844d114398a5bf534e755e66914cede0023693605abe0100f882befe7598271d70aaa5747bde9dac39c04d03d3
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/ruby-macrodroid.rb
CHANGED
@@ -7,6 +7,12 @@ require 'rxfhelper'
|
|
7
7
|
require 'chronic_cron'
|
8
8
|
|
9
9
|
|
10
|
+
MODEL =<<EOF
|
11
|
+
device
|
12
|
+
connectivity
|
13
|
+
airplane_mode is disabled
|
14
|
+
EOF
|
15
|
+
|
10
16
|
class TriggersNlp
|
11
17
|
include AppRoutes
|
12
18
|
|
@@ -20,7 +26,7 @@ class TriggersNlp
|
|
20
26
|
|
21
27
|
def triggers(params)
|
22
28
|
|
23
|
-
get /^at (\d+:\d+(?:[ap]m)?) on (.*)/i do |time, days|
|
29
|
+
get /^(?:at )?(\d+:\d+(?:[ap]m)?) (?:on )?(.*)/i do |time, days|
|
24
30
|
[TimerTrigger, {time: time, days: days}]
|
25
31
|
end
|
26
32
|
|
@@ -48,6 +54,9 @@ class ActionsNlp
|
|
48
54
|
[ToastAction, {msg: msg}]
|
49
55
|
end
|
50
56
|
|
57
|
+
get /^Popup Message ['"][^'"]+/i do |msg|
|
58
|
+
[ToastAction, {msg: msg}]
|
59
|
+
end
|
51
60
|
|
52
61
|
end
|
53
62
|
|
@@ -178,7 +187,7 @@ class Macro
|
|
178
187
|
m_action_list: @actions.map(&:to_h),
|
179
188
|
m_constraint_list: @constraints.map(&:to_h),
|
180
189
|
m_description: '',
|
181
|
-
m_name:
|
190
|
+
m_name: title(),
|
182
191
|
m_excludeLog: false,
|
183
192
|
m_GUID: guid(),
|
184
193
|
m_isOrCondition: false,
|
@@ -194,6 +203,13 @@ class Macro
|
|
194
203
|
|
195
204
|
def import_h(h)
|
196
205
|
|
206
|
+
if @debug then
|
207
|
+
puts 'inside import_h'
|
208
|
+
puts 'h:' + h.inspect
|
209
|
+
end
|
210
|
+
|
211
|
+
@title = h[:name]
|
212
|
+
|
197
213
|
# fetch the local variables
|
198
214
|
@local_variables = h['local_variables']
|
199
215
|
|
@@ -316,16 +332,16 @@ class Macro
|
|
316
332
|
|
317
333
|
end
|
318
334
|
|
319
|
-
def match?(triggerx, detail={time: $env[:time]} )
|
335
|
+
def match?(triggerx, detail={time: $env[:time]}, model=nil )
|
320
336
|
|
321
|
-
if @triggers.any? {|x| x.type == triggerx and x.match?(detail) } then
|
337
|
+
if @triggers.any? {|x| x.type == triggerx and x.match?(detail, model) } then
|
322
338
|
|
323
339
|
if @debug then
|
324
340
|
puts 'checking constraints ...'
|
325
341
|
puts '@constraints: ' + @constraints.inspect
|
326
342
|
end
|
327
343
|
|
328
|
-
if @constraints.all? {|x| x.match?($env.merge(detail)) } then
|
344
|
+
if @constraints.all? {|x| x.match?($env.merge(detail), model) } then
|
329
345
|
|
330
346
|
true
|
331
347
|
|
@@ -342,6 +358,15 @@ class Macro
|
|
342
358
|
def run()
|
343
359
|
@actions.map(&:invoke)
|
344
360
|
end
|
361
|
+
|
362
|
+
def to_s()
|
363
|
+
[
|
364
|
+
'm: ' + @title,
|
365
|
+
@triggers.map {|x| "t: %s" % x}.join("\n"),
|
366
|
+
@actions.map {|x| "a: %s" % x}.join("\n"),
|
367
|
+
@constraints.map {|x| "a: %s" % x}.join("\n")
|
368
|
+
].join("\n")
|
369
|
+
end
|
345
370
|
|
346
371
|
private
|
347
372
|
|
@@ -435,11 +460,11 @@ class MacroDroid
|
|
435
460
|
def import_json(s)
|
436
461
|
|
437
462
|
@h = JSON.parse(s, symbolize_names: true).to_snake_case
|
438
|
-
puts ('@h: ' + @h.
|
463
|
+
puts ('@h: ' + @h.inspect).debug if @debug
|
439
464
|
|
440
465
|
@macros = @h[:macro_list].map do |macro|
|
441
466
|
|
442
|
-
puts ('macro: ' + macro.
|
467
|
+
puts ('macro: ' + macro.inspect).debug if @debug
|
443
468
|
m = Macro.new(debug: @debug)
|
444
469
|
m.import_h(macro)
|
445
470
|
m
|
@@ -499,7 +524,9 @@ class MacroDroid
|
|
499
524
|
|
500
525
|
end
|
501
526
|
|
502
|
-
|
527
|
+
def to_s()
|
528
|
+
@macros.map(&:to_s).join("\n\n")
|
529
|
+
end
|
503
530
|
|
504
531
|
end
|
505
532
|
|
@@ -562,10 +589,11 @@ class Trigger < MacroObject
|
|
562
589
|
@list << 'fakeIcon'
|
563
590
|
end
|
564
591
|
|
565
|
-
def match?(detail={})
|
592
|
+
def match?(detail={}, model=nil)
|
593
|
+
|
594
|
+
# only match where the key exists in the trigger object
|
595
|
+
detail.select {|k,v| @h.include? k }.all? {|key,value| @h[key] == value}
|
566
596
|
|
567
|
-
detail.all? {|key,value| @h[key] == value}
|
568
|
-
|
569
597
|
end
|
570
598
|
|
571
599
|
end
|
@@ -1056,7 +1084,7 @@ class TimerTrigger < Trigger
|
|
1056
1084
|
|
1057
1085
|
end
|
1058
1086
|
|
1059
|
-
def match?(detail={time: $env[:time]})
|
1087
|
+
def match?(detail={time: $env[:time]}, model=nil)
|
1060
1088
|
|
1061
1089
|
a = @h[:days_of_week]
|
1062
1090
|
a.unshift a.pop
|
@@ -1074,6 +1102,18 @@ class TimerTrigger < Trigger
|
|
1074
1102
|
ChronicCron.new(s, detail[:time]).to_time == detail[:time]
|
1075
1103
|
|
1076
1104
|
end
|
1105
|
+
|
1106
|
+
def to_s()
|
1107
|
+
|
1108
|
+
dow = @h[:days_of_week]
|
1109
|
+
|
1110
|
+
a = Date::ABBR_DAYNAMES
|
1111
|
+
|
1112
|
+
time = Time.parse("%s:%s" % [@h[:hour], @h[:minute]]).strftime("%-H:%M%P")
|
1113
|
+
days = (a[1..-1] << a.first).zip(dow).select {|_,b| b}.map(&:first)
|
1114
|
+
|
1115
|
+
"at %s on %s" % [time, days.join(', ')]
|
1116
|
+
end
|
1077
1117
|
|
1078
1118
|
end
|
1079
1119
|
|
@@ -2709,6 +2749,10 @@ class ToastAction < NotificationsAction
|
|
2709
2749
|
def invoke()
|
2710
2750
|
super(@h[:message_text])
|
2711
2751
|
end
|
2752
|
+
|
2753
|
+
def to_s()
|
2754
|
+
"Popup Message '%s'" % @h[:message_text]
|
2755
|
+
end
|
2712
2756
|
|
2713
2757
|
end
|
2714
2758
|
|
@@ -3037,6 +3081,30 @@ class Constraint < MacroObject
|
|
3037
3081
|
def initialize(h={})
|
3038
3082
|
super(h)
|
3039
3083
|
end
|
3084
|
+
|
3085
|
+
def match?(detail={}, model=nil)
|
3086
|
+
|
3087
|
+
detail.select {|k,v| @h.include? k }.all? {|key,value| @h[key] == value}
|
3088
|
+
|
3089
|
+
end
|
3090
|
+
|
3091
|
+
#def to_s()
|
3092
|
+
# ''
|
3093
|
+
#end
|
3094
|
+
|
3095
|
+
protected
|
3096
|
+
|
3097
|
+
def toggle_match?(key, val)
|
3098
|
+
|
3099
|
+
if @h[key] == true and val == key.to_s then
|
3100
|
+
true
|
3101
|
+
elsif @h[key] == false and val != key.to_s
|
3102
|
+
true
|
3103
|
+
else
|
3104
|
+
false
|
3105
|
+
end
|
3106
|
+
|
3107
|
+
end
|
3040
3108
|
|
3041
3109
|
end
|
3042
3110
|
|
@@ -3398,6 +3466,29 @@ class AirplaneModeConstraint < Constraint
|
|
3398
3466
|
super(options.merge h)
|
3399
3467
|
|
3400
3468
|
end
|
3469
|
+
|
3470
|
+
def match?(detail={}, model=nil)
|
3471
|
+
|
3472
|
+
puts 'inside airplaneModeConstraint#match?' if $debug
|
3473
|
+
|
3474
|
+
if detail.has_key? :enabled then
|
3475
|
+
|
3476
|
+
puts 'detail has the key' if $debug
|
3477
|
+
super(detail)
|
3478
|
+
|
3479
|
+
elsif model
|
3480
|
+
|
3481
|
+
if $debug then
|
3482
|
+
puts 'checking the model'
|
3483
|
+
switch = model.connectivity.airplane_mode.switch
|
3484
|
+
puts 'switch: ' + switch.inspect
|
3485
|
+
end
|
3486
|
+
|
3487
|
+
toggle_match?(:enabled, switch)
|
3488
|
+
|
3489
|
+
end
|
3490
|
+
|
3491
|
+
end
|
3401
3492
|
|
3402
3493
|
end
|
3403
3494
|
|
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.5.
|
4
|
+
version: 0.5.1
|
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-
|
38
|
+
date: 2020-09-03 00:00:00.000000000 Z
|
39
39
|
dependencies:
|
40
40
|
- !ruby/object:Gem::Dependency
|
41
41
|
name: uuid
|
@@ -61,22 +61,22 @@ dependencies:
|
|
61
61
|
name: rxfhelper
|
62
62
|
requirement: !ruby/object:Gem::Requirement
|
63
63
|
requirements:
|
64
|
-
- - ">="
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
version: 1.0.0
|
67
64
|
- - "~>"
|
68
65
|
- !ruby/object:Gem::Version
|
69
66
|
version: '1.0'
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 1.0.4
|
70
70
|
type: :runtime
|
71
71
|
prerelease: false
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
|
-
- - ">="
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: 1.0.0
|
77
74
|
- - "~>"
|
78
75
|
- !ruby/object:Gem::Version
|
79
76
|
version: '1.0'
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: 1.0.4
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: chronic_cron
|
82
82
|
requirement: !ruby/object:Gem::Requirement
|
metadata.gz.sig
CHANGED
Binary file
|