ruby-macrodroid 0.7.1 → 0.7.2
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.tar.gz.sig +0 -0
- data/lib/ruby-macrodroid.rb +133 -9
- metadata +21 -1
- metadata.gz.sig +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 70dd1172a7d2ad827ff72771851910b140616b3f41fd7843ef65dc5bdf55fd5e
|
4
|
+
data.tar.gz: d5ef7e748dd16bfbc83e0ca05932a2b7723c61ea2ee2fbc8f69ef1c77c651ef0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 91746fa312b8c1c5069c16f5c7337b1f6f438af8afecedc5e6469f21e00f98108788f3248d8d93284d9829858b0bf11ce5ad1591bba4a7f8f4ed1005a71c111c
|
7
|
+
data.tar.gz: bd1cefc341fd57809b563f1a4f21f013b3fe3e93143cef0c07862bdfe738ca6479e39c86a80355c110bd786da5b63849cc59616c7d67be58750c4ff2c68a47c3
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/ruby-macrodroid.rb
CHANGED
@@ -112,6 +112,7 @@ require 'rowx'
|
|
112
112
|
require 'uuid'
|
113
113
|
#require 'glw'
|
114
114
|
#require 'geozone'
|
115
|
+
require 'subunit'
|
115
116
|
require 'rxfhelper'
|
116
117
|
require 'chronic_cron'
|
117
118
|
|
@@ -177,7 +178,16 @@ class TriggersNlp
|
|
177
178
|
get /^location (entered|exited) \(([^\)]+)/i do |direction, name|
|
178
179
|
enter_area = direction.downcase.to_sym == :entered
|
179
180
|
[GeofenceTrigger, {name: name, enter_area: enter_area}]
|
180
|
-
end
|
181
|
+
end
|
182
|
+
|
183
|
+
# eg. Proximity Sensor (Near)
|
184
|
+
#
|
185
|
+
get /^Proximity Sensor \(([^\)]+)\)/i do |distance|
|
186
|
+
|
187
|
+
[ProximityTrigger, {distance: distance}]
|
188
|
+
end
|
189
|
+
|
190
|
+
|
181
191
|
|
182
192
|
end
|
183
193
|
|
@@ -269,7 +279,33 @@ class ActionsNlp
|
|
269
279
|
#
|
270
280
|
get /webhook|HTTP GET/i do
|
271
281
|
[OpenWebPageAction, {}]
|
272
|
-
end
|
282
|
+
end
|
283
|
+
|
284
|
+
#a: Keep Device Awake Screen On Until Disabled
|
285
|
+
#
|
286
|
+
get /Keep Device Awake Screen On Until Disabled/i do
|
287
|
+
[KeepAwakeAction, {enabled: true, permanent: true, screen_option: 0}]
|
288
|
+
end
|
289
|
+
|
290
|
+
|
291
|
+
#a: Keep Device Awake Screen On 1h 1m 1s
|
292
|
+
#
|
293
|
+
get /Keep Device Awake Screen On ([^$]+)/i do |duration|
|
294
|
+
|
295
|
+
a = duration.split.map(&:to_i)
|
296
|
+
secs = Subunit.new(units={minutes:60, hours:60, seconds: 60}, a).to_i
|
297
|
+
|
298
|
+
h = {
|
299
|
+
permanent: true, screen_option: 0, seconds_to_stay_awake_for: secs
|
300
|
+
}
|
301
|
+
[KeepAwakeAction, h]
|
302
|
+
end
|
303
|
+
|
304
|
+
#a: Disable Keep Awake
|
305
|
+
#
|
306
|
+
get /Disable Keep Awake/i do
|
307
|
+
[KeepAwakeAction, {enabled: false, screen_option: 0}]
|
308
|
+
end
|
273
309
|
|
274
310
|
|
275
311
|
end
|
@@ -642,11 +678,11 @@ EOF
|
|
642
678
|
|
643
679
|
a = [
|
644
680
|
'm: ' + @title,
|
645
|
-
't: ' + @triggers.map(&:
|
646
|
-
'a: ' + @actions.map(&:
|
681
|
+
't: ' + @triggers.map(&:to_summary).join(", "),
|
682
|
+
'a: ' + @actions.map(&:to_summary).join(", "),
|
647
683
|
]
|
648
684
|
|
649
|
-
a << 'c: ' + @constraints.map(&:
|
685
|
+
a << 'c: ' + @constraints.map(&:to_summary).join(", ") if @constraints.any?
|
650
686
|
|
651
687
|
a.join("\n") + "\n"
|
652
688
|
|
@@ -813,7 +849,16 @@ class MacroDroid
|
|
813
849
|
end
|
814
850
|
|
815
851
|
def to_s()
|
816
|
-
|
852
|
+
|
853
|
+
lines = []
|
854
|
+
|
855
|
+
if @geofences.any? then
|
856
|
+
lines << @geofences.map {|_, value| 'g: ' + value.to_s}.join("\n\n") + "\n"
|
857
|
+
end
|
858
|
+
|
859
|
+
lines << @macros.map(&:to_s).join("\n")
|
860
|
+
lines.join("\n")
|
861
|
+
|
817
862
|
end
|
818
863
|
|
819
864
|
def to_summary()
|
@@ -964,6 +1009,13 @@ class GeofenceMap
|
|
964
1009
|
name: @name,
|
965
1010
|
radius: @radius
|
966
1011
|
}
|
1012
|
+
|
1013
|
+
end
|
1014
|
+
|
1015
|
+
def to_s()
|
1016
|
+
|
1017
|
+
coordinates = "%s, %s" % [@longitude, @latitude]
|
1018
|
+
"%s\n coordinates: %s\n radius: %s" % [@name, coordinates, @radius]
|
967
1019
|
|
968
1020
|
end
|
969
1021
|
|
@@ -1011,6 +1063,8 @@ class MacroObject
|
|
1011
1063
|
def to_s()
|
1012
1064
|
"#<%s %s>" % [self.class, @h.inspect]
|
1013
1065
|
end
|
1066
|
+
|
1067
|
+
alias to_summary to_s
|
1014
1068
|
|
1015
1069
|
protected
|
1016
1070
|
|
@@ -1982,7 +2036,7 @@ class GeofenceTrigger < Trigger
|
|
1982
2036
|
direction = @h[:enter_area] ? 'Entry' : 'Exit'
|
1983
2037
|
|
1984
2038
|
found = @geofences.find {|x| x.id == @h[:geofence_id]}
|
1985
|
-
puts 'found: ' + found.inspect
|
2039
|
+
puts 'found: ' + found.inspect if @debug
|
1986
2040
|
label = found ? found.name : 'error: name not found'
|
1987
2041
|
|
1988
2042
|
"Geofence %s (%s)" % [direction, label]
|
@@ -2030,8 +2084,28 @@ class ActivityRecognitionTrigger < SensorsTrigger
|
|
2030
2084
|
}
|
2031
2085
|
|
2032
2086
|
super(options.merge h)
|
2087
|
+
|
2088
|
+
@activity = ['In Vehicle', 'On Bicycle', 'Running', 'Walking', 'Still']
|
2033
2089
|
|
2034
2090
|
end
|
2091
|
+
|
2092
|
+
def to_s()
|
2093
|
+
activity = @activity[@h[:selected_index]]
|
2094
|
+
'Activity - ' + activity
|
2095
|
+
end
|
2096
|
+
|
2097
|
+
def to_summary
|
2098
|
+
|
2099
|
+
activity = @activity[@h[:selected_index]]
|
2100
|
+
s = if activity.length > 10 then
|
2101
|
+
activity[0..7] + '..'
|
2102
|
+
else
|
2103
|
+
activity
|
2104
|
+
end
|
2105
|
+
|
2106
|
+
'Activity - ' + s
|
2107
|
+
|
2108
|
+
end
|
2035
2109
|
|
2036
2110
|
end
|
2037
2111
|
|
@@ -2041,14 +2115,33 @@ class ProximityTrigger < SensorsTrigger
|
|
2041
2115
|
|
2042
2116
|
def initialize(h={})
|
2043
2117
|
|
2118
|
+
if h[:distance] then
|
2119
|
+
|
2120
|
+
case h[:distance].to_sym
|
2121
|
+
when :near
|
2122
|
+
options[:near] = true
|
2123
|
+
end
|
2124
|
+
end
|
2125
|
+
|
2044
2126
|
options = {
|
2045
2127
|
near: true,
|
2046
2128
|
selected_option: 0
|
2047
2129
|
}
|
2048
2130
|
|
2049
|
-
super(options.merge h)
|
2131
|
+
super(options.merge filter(options,h))
|
2050
2132
|
|
2051
2133
|
end
|
2134
|
+
|
2135
|
+
def to_s()
|
2136
|
+
|
2137
|
+
distance = if @h[:near] then
|
2138
|
+
'Near'
|
2139
|
+
else
|
2140
|
+
'Far'
|
2141
|
+
end
|
2142
|
+
|
2143
|
+
"Proximity Sensor (%s)" % distance
|
2144
|
+
end
|
2052
2145
|
|
2053
2146
|
end
|
2054
2147
|
|
@@ -2652,6 +2745,10 @@ class SpeakTextAction < DeviceAction
|
|
2652
2745
|
super(options.merge h)
|
2653
2746
|
|
2654
2747
|
end
|
2748
|
+
|
2749
|
+
def to_s()
|
2750
|
+
"Speak Text (%s)" % @h[:text_to_say]
|
2751
|
+
end
|
2655
2752
|
|
2656
2753
|
end
|
2657
2754
|
|
@@ -3553,6 +3650,10 @@ end
|
|
3553
3650
|
|
3554
3651
|
# Category: Screen
|
3555
3652
|
#
|
3653
|
+
# options:
|
3654
|
+
# keep awake, screen on => enabled: true
|
3655
|
+
# disable keep awake => enabled: false
|
3656
|
+
#
|
3556
3657
|
class KeepAwakeAction < ScreenAction
|
3557
3658
|
|
3558
3659
|
def initialize(h={})
|
@@ -3567,7 +3668,30 @@ class KeepAwakeAction < ScreenAction
|
|
3567
3668
|
super(options.merge h)
|
3568
3669
|
|
3569
3670
|
end
|
3570
|
-
|
3671
|
+
|
3672
|
+
def to_s()
|
3673
|
+
|
3674
|
+
screen = @h[:screen_option] == 0 ? 'Screen On' : 'Screen Off'
|
3675
|
+
|
3676
|
+
if @h[:enabled] then
|
3677
|
+
|
3678
|
+
whenx = if @h[:seconds_to_stay_awake_for] == 0 then
|
3679
|
+
|
3680
|
+
'Until Disabled'
|
3681
|
+
|
3682
|
+
else
|
3683
|
+
scnds = @h[:seconds_to_stay_awake_for]
|
3684
|
+
Subunit.new(units={minutes:60, hours:60}, seconds: scnds).strfunit("%x")
|
3685
|
+
end
|
3686
|
+
|
3687
|
+
'Keep Device Awake ' + screen + ' ' + whenx
|
3688
|
+
|
3689
|
+
else
|
3690
|
+
'Disable Keep Awake'
|
3691
|
+
end
|
3692
|
+
|
3693
|
+
|
3694
|
+
end
|
3571
3695
|
end
|
3572
3696
|
|
3573
3697
|
# Category: Screen
|
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.7.
|
4
|
+
version: 0.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Robertson
|
@@ -97,6 +97,26 @@ dependencies:
|
|
97
97
|
- - "~>"
|
98
98
|
- !ruby/object:Gem::Version
|
99
99
|
version: '0.7'
|
100
|
+
- !ruby/object:Gem::Dependency
|
101
|
+
name: subunit
|
102
|
+
requirement: !ruby/object:Gem::Requirement
|
103
|
+
requirements:
|
104
|
+
- - ">="
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: 0.6.0
|
107
|
+
- - "~>"
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0.6'
|
110
|
+
type: :runtime
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: 0.6.0
|
117
|
+
- - "~>"
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '0.6'
|
100
120
|
- !ruby/object:Gem::Dependency
|
101
121
|
name: geozone
|
102
122
|
requirement: !ruby/object:Gem::Requirement
|
metadata.gz.sig
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
�W��V�$�)v_n��`-�N�)`��y�j#�a�ģG���$�odV'���k$j���^(NГWh���>3�n"ڈ$C�T�I:̅oO��I��Y�J����<U٢vc���0p�]>M�����AB��xB�U�� ���k�'���{t�@���jj]�� {�JΊVDx0[����)r�j�T�V����sawK�cl8�u%�,����h�>�/JV1Y1B�>U����=��K8�C�ԙE��O
|