lita-onewheel-aqi 1.2.0 → 2.0.0
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
- 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
|