lita-onewheel-aqi 2.0.12 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2bb25daba37a89da7727f14156565d3f0a703619
4
- data.tar.gz: 9f1d9c790e73bf8f8969cb2db3fbc8e44fa4fbb4
3
+ metadata.gz: 18a828b5b2257a136b9266c7a8156bb528980302
4
+ data.tar.gz: b624f8d89a548f2114fb37f1815024cfb1ed3d76
5
5
  SHA512:
6
- metadata.gz: 62c9aaa6cefe4671a67cc30628a18431347d36752225d6a6c5acb197bccd427e8297ce96ab5f6b20a52eb71e98b9c9ccc6f1ed83e16c29e49365423c3a0ee27c
7
- data.tar.gz: 0aa1952f3b2a42dd02587e9a791b103e9c674c63fa53311f0fda8b8fda3200d4237840e521d69a33f033ab75e210304bf6ccbb4dfe81896a4a75cce044e3f4f7
6
+ metadata.gz: 7376eaeb124011ddaf21330d44aa656bd789cfdb3c6f68962d07c9689ae6b4623ba3a2d28b2193f61680d82784bbdd1013078d9c9eb89f8176aef56824db6d83
7
+ data.tar.gz: 49b4cb8dfcd24c89acd95802fe1d6629f5699758879abe981cfb14aa3827c07d424e9427f83fee9c079a0fcd2db26f97b353d00b0612b9fc471cc0f3b275852d
@@ -8,6 +8,8 @@ module Lita
8
8
  config :distance
9
9
  config :mode, default: :irc
10
10
 
11
+ REDIS_KEY = 'onewheel-aqi'
12
+
11
13
  route /^aqi\s+(.*)$/i,
12
14
  :get_aqi,
13
15
  command: true,
@@ -81,18 +83,47 @@ module Lita
81
83
  301..500 => '🚫☣🚫' }
82
84
  end
83
85
 
84
- def get_location(response)
85
- location = if response.matches[0][0].to_s.length == 1
86
- ''
87
- else
88
- response.matches[0][0]
89
- end
86
+ # Perform a geocoder lookup based on a) the query or b) the user's serialized state.
87
+ # If neither of those exist, default to config location.
88
+ def get_location(response, persist = true)
89
+ user = response.user
90
+ query = nil
91
+ if response.matches[0].is_a?(Array) and response.matches[0].empty?
92
+ query = response.matches[0][0]
93
+ end
94
+
95
+ Lita.logger.debug "Performing geolookup for '#{user.name}' for '#{query}'"
96
+
97
+ if query.nil? or query.empty?
98
+ Lita.logger.debug "No query specified, pulling from redis #{REDIS_KEY}, #{user.name}"
99
+ serialized_geocoded = redis.hget(REDIS_KEY, user.name)
100
+ unless serialized_geocoded == 'null' or serialized_geocoded.nil?
101
+ geocoded = JSON.parse(serialized_geocoded)
102
+ end
103
+ Lita.logger.debug "Cached location: #{geocoded.inspect}"
104
+ end
105
+
106
+ query = (query.nil?)? 'Portland, OR' : query
107
+ Lita.logger.debug "q & g #{query.inspect} #{geocoded.inspect}"
108
+
109
+ unless geocoded
110
+ Lita.logger.debug "Redis hget failed, performing lookup for #{query}"
111
+ geocoded = optimistic_geo_wrapper query
112
+ Lita.logger.debug "Geolocation found. '#{geocoded.inspect}' failed, performing lookup"
113
+ if persist
114
+ redis.hset(REDIS_KEY, user.name, geocoded.to_json)
115
+ end
116
+ end
117
+
118
+ Lita.logger.debug "geocoded: '#{geocoded}'"
119
+ loc = {
120
+ name: geocoded['formatted_address'],
121
+ lat: geocoded['geometry']['location']['lat'],
122
+ lng: geocoded['geometry']['location']['lng']
123
+ }
90
124
 
91
- puts "get_location: '#{location}'"
92
- location = 'Portland, OR' if location.nil? || location.empty?
125
+ Lita.logger.debug "loc: '#{loc}'"
93
126
 
94
- loc = geo_lookup(location)
95
- puts loc.inspect
96
127
  loc
97
128
  end
98
129
 
@@ -220,17 +251,6 @@ module Lita
220
251
  geocoded
221
252
  end
222
253
 
223
- def geo_lookup(query)
224
- puts "Location lookup #{query.inspect}"
225
- geocoded = optimistic_geo_wrapper query
226
-
227
- query = 'Portland, OR' if (query.nil? || query.empty?) && geocoded.nil?
228
-
229
- { name: geocoded['formatted_address'],
230
- lat: geocoded['geometry']['location']['lat'],
231
- lng: geocoded['geometry']['location']['lng'] }
232
- end
233
-
234
254
  # Particulate Matter 2.5 to micrograms per cubic meter
235
255
  def pm25_to_ugm3(pm25)
236
256
  ranges = {
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = 'lita-onewheel-aqi'
3
- spec.version = '2.0.12'
3
+ spec.version = '2.1.0'
4
4
  spec.authors = ['Andrew Kreps']
5
5
  spec.email = ['andrew.kreps@gmail.com']
6
6
  spec.description = 'AQI data retrieval bot'
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: 2.0.12
4
+ version: 2.1.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-09-06 00:00:00.000000000 Z
11
+ date: 2017-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lita