lita-onewheel-aqi 1.2.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/lita/handlers/onewheel_aqi.rb +54 -8
- data/lita-onewheel-aqi.gemspec +1 -1
- data/spec/lita/handlers/onewheel_aqi_spec.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0b1e16da0378b4492653b530898b80e4213d242e
|
4
|
+
data.tar.gz: bcaf8cfbdcc28de7dbdb47d4f4c8b45c35d43ba9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 113c8c581db65ce671dfe0b24f039b8f62a4d1ad5fcf1beabc16a0f06b0ab75599f7a774f0c885d02b9ff4590757cf4f366ddfbd8e4107aa85a2757dc1848a82
|
7
|
+
data.tar.gz: 3eedcc7a4d0ab8f4e42b39f801e88e558cc113735abb3a56012875907c6e4d1395fe008d40bd12667aa22d97206f724edd7b2b3a34fe85b3934276b17b318d1c
|
@@ -6,7 +6,7 @@ module Lita
|
|
6
6
|
class OnewheelAqi < Handler
|
7
7
|
config :api_key
|
8
8
|
config :distance
|
9
|
-
config :
|
9
|
+
config :mode, default: :irc
|
10
10
|
|
11
11
|
route /^aqi\s+(.*)$/i,
|
12
12
|
:get_aqi,
|
@@ -54,6 +54,24 @@ module Lita
|
|
54
54
|
301..500 => :pink }
|
55
55
|
end
|
56
56
|
|
57
|
+
def aqi_range_labels
|
58
|
+
{ 0..50 => 'Good',
|
59
|
+
51..100 => 'Moderate',
|
60
|
+
101..150 => 'Unhealthy for Sensitive Groups',
|
61
|
+
151..200 => 'Unhealthy for All',
|
62
|
+
201..300 => 'Very Unhealthy',
|
63
|
+
301..500 => 'Hazardous' }
|
64
|
+
end
|
65
|
+
|
66
|
+
def aqi_slack_emoji
|
67
|
+
{ 0..50 => ':deciduous_tree:',
|
68
|
+
51..100 => ':warning:',
|
69
|
+
101..150 => ':large_orange_diamond:',
|
70
|
+
151..200 => ':no_entry_sign:',
|
71
|
+
201..300 => ':radioactive_sign:',
|
72
|
+
301..500 => ':no_entry_sign: :radioactive_sign: :no_entry_sign:' }
|
73
|
+
end
|
74
|
+
|
57
75
|
def get_location(response)
|
58
76
|
location = if response.matches[0].to_s.casecmp('aqi').zero?
|
59
77
|
''
|
@@ -83,8 +101,16 @@ module Lita
|
|
83
101
|
loc = get_location(response)
|
84
102
|
aqi = get_observed_aqi(loc)
|
85
103
|
|
104
|
+
banner_str = "(#{aqi['data']['city']['url']})"
|
105
|
+
|
86
106
|
reply = "AQI for #{loc[:name]}, "
|
87
107
|
|
108
|
+
if config.mode == :irc
|
109
|
+
reply += color_str_with_value(range_str: aqi_range_labels, range_value: aqi['data']['iaqi']['pm25']['v'].to_s)
|
110
|
+
banner_str = "\x03#{colors[:grey]}#{banner_str}\x03"
|
111
|
+
end
|
112
|
+
|
113
|
+
|
88
114
|
if aqi['data']['iaqi']['pm10']
|
89
115
|
reply += 'pm10: ' + color_str(aqi['data']['iaqi']['pm10']['v'].to_s) + ' '
|
90
116
|
end
|
@@ -92,9 +118,6 @@ module Lita
|
|
92
118
|
reply += 'pm25: ' + color_str(aqi['data']['iaqi']['pm25']['v'].to_s) + ' '
|
93
119
|
end
|
94
120
|
|
95
|
-
banner_str = "(#{aqi['data']['city']['url']})"
|
96
|
-
banner_str = "\x03#{colors[:grey]}#{banner_str}\x03" if config.colors
|
97
|
-
|
98
121
|
reply += banner_str
|
99
122
|
|
100
123
|
response.reply reply
|
@@ -107,7 +130,10 @@ module Lita
|
|
107
130
|
reply = "AQI for #{loc[:name]}, "
|
108
131
|
|
109
132
|
banner_str = "(#{aqi['data']['city']['url']})"
|
110
|
-
|
133
|
+
|
134
|
+
if config.mode == :irc
|
135
|
+
banner_str = "\x03#{colors[:grey]}#{banner_str}\x03"
|
136
|
+
end
|
111
137
|
|
112
138
|
if aqi['data']['iaqi']['co']
|
113
139
|
reply += 'co: ' + aqi['data']['iaqi']['co']['v'].to_s + ' '
|
@@ -132,10 +158,14 @@ module Lita
|
|
132
158
|
response.reply reply
|
133
159
|
end
|
134
160
|
|
135
|
-
def color_str(str)
|
136
|
-
if config.
|
161
|
+
def color_str(str, value = nil)
|
162
|
+
if config.mode == :irc
|
163
|
+
if value.nil?
|
164
|
+
value = str.to_i
|
165
|
+
end
|
166
|
+
|
137
167
|
aqi_range_colors.keys.each do |color_key|
|
138
|
-
if color_key.cover?
|
168
|
+
if color_key.cover? value # Super secred cover sauce
|
139
169
|
color = colors[aqi_range_colors[color_key]]
|
140
170
|
str = "\x03#{color}#{str}\x03"
|
141
171
|
end
|
@@ -145,6 +175,22 @@ module Lita
|
|
145
175
|
str
|
146
176
|
end
|
147
177
|
|
178
|
+
def color_str_with_value(range_str:, range_value:)
|
179
|
+
str = nil
|
180
|
+
aqi_range_colors.keys.each do |color_key|
|
181
|
+
if color_key.cover? range_value.to_i # Super secred cover sauce
|
182
|
+
color = colors[aqi_range_colors[color_key]]
|
183
|
+
if config.mode == :irc
|
184
|
+
str = "\x03#{color}#{range_str[color_key]}\x03 "
|
185
|
+
elsif config.mode == :slack
|
186
|
+
str = "#{range_str[color_key]} "
|
187
|
+
end
|
188
|
+
end
|
189
|
+
end
|
190
|
+
|
191
|
+
str
|
192
|
+
end
|
193
|
+
|
148
194
|
def extract_pmtwofive(aqi)
|
149
195
|
Lita.logger.debug "extract_pmtwofive with #{aqi}"
|
150
196
|
pm25 = ''
|
data/lita-onewheel-aqi.gemspec
CHANGED
@@ -31,11 +31,11 @@ describe Lita::Handlers::OnewheelAqi, lita_handler: true do
|
|
31
31
|
|
32
32
|
it 'queries the aqi' do
|
33
33
|
send_command 'aqi'
|
34
|
-
expect(replies.last).to include("AQI for Portland, OR, USA, pm10: \u00030340\u0003 pm25: \u00030876\u0003 \u000314(http://aqicn.org/city/usa/oregon/government-camp-multorpor-visibility/)\u0003")
|
34
|
+
expect(replies.last).to include("AQI for Portland, OR, USA, \u000308Moderate\u0003 pm10: \u00030340\u0003 pm25: \u00030876\u0003 \u000314(http://aqicn.org/city/usa/oregon/government-camp-multorpor-visibility/)\u0003")
|
35
35
|
end
|
36
36
|
|
37
37
|
it 'queries the aqideets' do
|
38
38
|
send_command 'aqideets'
|
39
|
-
expect(replies.last).to eq("AQI for Portland, OR, USA, humidity: 11% pressure: 1014mb pm10: \u00030340\u0003 pm25: \u00030876\u0003 temp: 34.65C \u000314(http://aqicn.org/city/usa/oregon/government-camp-multorpor-visibility/)\u0003")
|
39
|
+
expect(replies.last).to eq("AQI for Portland, OR, USA, \u00030Moderate\u0003 humidity: 11% pressure: 1014mb pm10: \u00030340\u0003 pm25: \u00030876\u0003 temp: 34.65C \u000314(http://aqicn.org/city/usa/oregon/government-camp-multorpor-visibility/)\u0003")
|
40
40
|
end
|
41
41
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lita-onewheel-aqi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kreps
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-09-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lita
|