siriproxypm-clientstatecache 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -10,7 +10,7 @@ class SiriProxy::PluginManager::ClientStateCache < SiriProxy::PluginManager
10
10
  #initialization
11
11
  ###############################################
12
12
 
13
- @@client_state = nil
13
+ # @@client_state = nil
14
14
 
15
15
  #intialization
16
16
  def initialize()
@@ -28,25 +28,27 @@ class SiriProxy::PluginManager::ClientStateCache < SiriProxy::PluginManager
28
28
 
29
29
 
30
30
  def init_client
31
- if @@client_state == nil
32
- #create hash of array of stack states: key is client (e.g. ipaddress) value is hash with
33
- #key :activity the last time activity was registered from this client
34
- @@client_state = {}
35
- end
31
+ #create hash of array of stack states: key is client (e.g. ipaddress) value is hash with
32
+ #only used key is :activity, which gives the last time activity was registered from this client
33
+ @client_state = {}
36
34
  end
37
35
 
38
36
  def set_client_state(symbol,val)
39
37
  client = get_client()
40
- if client != nil
41
- @@client[client][symbol] = val
38
+ if client != nil
39
+ if !@client_state.has_key?(client) \
40
+ || @client_state[client] == nil
41
+ @client_state[client] = {}
42
+ end
43
+ @client_state[client][symbol] = val
42
44
  end
43
45
  end
44
46
 
45
47
  def get_client_state(symbol)
46
48
  result = nil
47
49
  client = get_client()
48
- if client != nil
49
- result = @@client[client][symbol]
50
+ if client != nil && @client_state.has_key?(client)
51
+ result = @client_state[client][symbol]
50
52
  end
51
53
  return result
52
54
  end
@@ -79,7 +81,7 @@ class SiriProxy::PluginManager::ClientStateCache < SiriProxy::PluginManager
79
81
  result = nil
80
82
  plugins = get_plugin_list
81
83
  plugins.each do |plugin|
82
- plugin_obj = instatiate_plugin(plugin)
84
+ plugin_obj = instantiate_plugin(plugin)
83
85
  if plugin_obj == nil || !plugin_obj.is_a?(SiriProxy::Plugin)
84
86
  next
85
87
  end
@@ -146,12 +148,21 @@ class SiriProxy::PluginManager::ClientStateCache < SiriProxy::PluginManager
146
148
  end
147
149
 
148
150
 
149
- def text_matches(text,list, default_list = [],post =false)
151
+ def text_matches(text,list, default_list = [],post =false)
152
+ text = text.strip
153
+ if post
154
+ result = nil
155
+ else
156
+ result = false
157
+ end
158
+ if text == nil
159
+ return result
160
+ end
150
161
  if list == nil
151
162
  list = default_list
152
163
  elsif list.is_a?(String)
153
164
  list = [list]
154
- elsif !list.responds_to?('each')
165
+ elsif !list.respond_to?('each')
155
166
  list = default_list
156
167
  end
157
168
  list.each do |regexp|
@@ -163,7 +174,7 @@ class SiriProxy::PluginManager::ClientStateCache < SiriProxy::PluginManager
163
174
  #try to make it into a regexp
164
175
  regexp = eval regexp
165
176
  elsif
166
- regexp = Regexp.new("^\s*#{regexp}\s",true);
177
+ regexp = Regexp.new("^\s*#{regexp}",true);
167
178
  end
168
179
  end
169
180
  if regexp == nil || !regexp.is_a?(Regexp)
@@ -171,15 +182,17 @@ class SiriProxy::PluginManager::ClientStateCache < SiriProxy::PluginManager
171
182
  end
172
183
  if post
173
184
  if (match_data = regexp.match(text)) != nil
174
- return match_data.post_match
185
+ result = match_data.post_match
186
+ break
175
187
  end
176
188
  else
177
189
  if text.match(regexp)
178
- return true
190
+ result = true
191
+ break
179
192
  end
180
193
  end
181
194
  end
182
- return false
195
+ return result
183
196
  end
184
197
 
185
198
 
@@ -197,10 +210,9 @@ class SiriProxy::PluginManager::ClientStateCache < SiriProxy::PluginManager
197
210
 
198
211
 
199
212
  def has_open_connection
200
- return ((open = get_app_config("open")) != nil) \
201
- && open.is_a?(Integer) \
202
- && activity = get_client_state(:activity) \
203
- && activity + open >= Time.now.to_i
213
+ open = get_app_config("pluginManager","open")
214
+ activity = get_client_state(:activity)
215
+ result = open != nil && activity != nil && open.is_a?(Integer) && activity.is_a?(Integer) && (activity + open >= Time.now.to_i )
204
216
  end
205
217
 
206
218
 
@@ -211,13 +223,13 @@ class SiriProxy::PluginManager::ClientStateCache < SiriProxy::PluginManager
211
223
  def get_app_config(*args)
212
224
  result = $APP_CONFIG
213
225
  if args != nil \
214
- && (first_arg = args.unshift) != nil \
215
- && (result = result.first_arg) != nil
226
+ && (first_arg = args.shift) != nil
227
+ eval "result = result.#{first_arg}"
216
228
  args.each do |arg|
217
229
  if arg == nil \
218
- ||config_data == nil \
219
- || !config_data.respond_to?('has_key?')\
220
- || !config_data.has_key?(arg)
230
+ || result == nil \
231
+ || !result.respond_to?('has_key?')\
232
+ || !result.has_key?(arg)
221
233
  result = nil
222
234
  break
223
235
  end
@@ -238,22 +250,24 @@ class SiriProxy::PluginManager::ClientStateCache < SiriProxy::PluginManager
238
250
  result = nil
239
251
  log "Processing '#{text}'"
240
252
  do_call_backs
253
+ proc_text = requested(text)
254
+ log "Processing proc '#{text}'"
241
255
  if has_open_connection
242
256
  log "Connection is still open"
243
- if (proc_text = requested(text)) == nil
244
- #we may not need this block... if the text is stream in tokenized chunks to process
245
- proc_text = text
246
- end
247
- else
248
- if (proc_text = requested(text)) == nil
249
- no_matches
250
- return nil
257
+ if proc_text == nil
258
+ #there was not request to honey made, so we need to process the original text
259
+ proc_text = text
251
260
  end
261
+ elsif proc_text == nil
262
+ log "No open connection -- passing back to siri"
263
+ no_matches
264
+ return nil
252
265
  end
253
266
  log "Got Honey Command: #{proc_text}"
254
267
  keep_open_connection
255
- if result = is_goodbye(proc_text) \
256
- || result = process_plugins(proc_text)
268
+ if proc_text \
269
+ && (result = is_goodbye(proc_text) \
270
+ || result = process_plugins(proc_text))
257
271
  self.guzzoni_conn.block_rest_of_session
258
272
  else
259
273
  log "No matches for '#{proc_text}' on honey"
@@ -286,7 +300,9 @@ class SiriProxy::PluginManager::ClientStateCache < SiriProxy::PluginManager
286
300
  result = false
287
301
  goodbyes = get_app_config("pluginManager","goodbye")
288
302
  if (result = text_matches(text,goodbyes))
303
+ log "Saying goodbye"
289
304
  close_connection
305
+ result = true
290
306
  end
291
307
  return result
292
308
  end
@@ -297,7 +313,7 @@ class SiriProxy::PluginManager::ClientStateCache < SiriProxy::PluginManager
297
313
  #returns nil if we need to ignore this text. otherwise it returns the
298
314
  #remainder of the text to be processed
299
315
  def requested(text)
300
- return text_matches(get_app_config("pluginManager","identifier"),['honey'],true)
316
+ return text_matches(text,get_app_config("pluginManager","identifier"),['honey'],true)
301
317
  end
302
318
 
303
319
 
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "siriproxypm-clientstatecache"
6
- s.version = "0.0.2"
6
+ s.version = "0.0.3"
7
7
  s.authors = ["litlfred"]
8
8
  s.email = [""]
9
9
  s.homepage = ""
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: siriproxypm-clientstatecache
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: