rumpy 0.9.11 → 0.9.12
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/rumpy.rb +21 -10
- metadata +4 -4
data/lib/rumpy.rb
CHANGED
@@ -67,8 +67,9 @@ module Rumpy
|
|
67
67
|
connect
|
68
68
|
@logger.debug 'clear wrong users'
|
69
69
|
clear_users
|
70
|
-
|
71
|
-
|
70
|
+
set_subscription_callback
|
71
|
+
set_message_callback
|
72
|
+
set_iq_callback
|
72
73
|
@logger.info 'Bot is going ONLINE'
|
73
74
|
@client.send Jabber::Presence.new.set_priority(@priority).set_status(@status)
|
74
75
|
|
@@ -82,7 +83,7 @@ module Rumpy
|
|
82
83
|
rescue ActiveRecord::StatementInvalid
|
83
84
|
@logger.warn 'Statement Invalid catched'
|
84
85
|
@logger.info 'Reconnecting to database'
|
85
|
-
|
86
|
+
reconnect_db!
|
86
87
|
retry
|
87
88
|
rescue => e
|
88
89
|
$logger.error e.inspect
|
@@ -149,11 +150,10 @@ module Rumpy
|
|
149
150
|
end
|
150
151
|
end
|
151
152
|
@roster.items.each do |jid, item|
|
152
|
-
user =
|
153
|
+
user = find_user_by_jid jid
|
153
154
|
if user.nil? then
|
154
155
|
@logger.info "deleting from roster user with jid #{jid}"
|
155
156
|
item.remove
|
156
|
-
next
|
157
157
|
elsif item.subscription != :both then
|
158
158
|
@logger.info "deleting from roster&database user with jid #{jid}"
|
159
159
|
item.remove
|
@@ -162,7 +162,7 @@ module Rumpy
|
|
162
162
|
end
|
163
163
|
end
|
164
164
|
|
165
|
-
def
|
165
|
+
def set_subscription_callback
|
166
166
|
@roster.add_subscription_request_callback do |item, presence|
|
167
167
|
jid = presence.from
|
168
168
|
@roster.accept_subscription jid
|
@@ -184,17 +184,25 @@ module Rumpy
|
|
184
184
|
rescue ActiveRecord::StatementInvalid
|
185
185
|
@logger.warn 'Statement Invalid catched'
|
186
186
|
@logger.info 'Reconnecting to database'
|
187
|
-
|
187
|
+
reconnect_db!
|
188
188
|
retry
|
189
189
|
end
|
190
190
|
end
|
191
191
|
end
|
192
192
|
|
193
|
-
def
|
193
|
+
def find_user_by_jid(jid)
|
194
|
+
@main_model.find_by_jid jid
|
195
|
+
end
|
196
|
+
|
197
|
+
def reconnect_db!
|
198
|
+
@main_model.connection.reconnect!
|
199
|
+
end
|
200
|
+
|
201
|
+
def set_message_callback
|
194
202
|
@client.add_message_callback do |msg|
|
195
203
|
begin
|
196
204
|
if msg.type != :error and msg.body and msg.from then
|
197
|
-
if user =
|
205
|
+
if user = find_user_by_jid(msg.from) then
|
198
206
|
@logger.debug "get normal message from #{msg.from}"
|
199
207
|
pars_results = parser_func msg.body
|
200
208
|
@logger.debug "parsed message: #{pars_results.inspect}"
|
@@ -214,13 +222,16 @@ module Rumpy
|
|
214
222
|
rescue ActiveRecord::StatementInvalid
|
215
223
|
@logger.warn 'Statement Invalid catched!'
|
216
224
|
@logger.info 'Reconnecting to database'
|
217
|
-
|
225
|
+
reconnect_db!
|
218
226
|
retry
|
219
227
|
rescue => e
|
220
228
|
@logger.error e.inspect
|
221
229
|
@logger.error e.backtrace
|
222
230
|
end
|
223
231
|
end
|
232
|
+
end
|
233
|
+
|
234
|
+
def set_iq_callback
|
224
235
|
@client.add_iq_callback do |iq|
|
225
236
|
@logger.debug "got iq #{iq.inspect}"
|
226
237
|
if iq.type == :get then # hack for pidgin (STOP USING IT)
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rumpy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 35
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 9
|
9
|
-
-
|
10
|
-
version: 0.9.
|
9
|
+
- 12
|
10
|
+
version: 0.9.12
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Tsokurov A.G.
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2011-
|
19
|
+
date: 2011-08-10 00:00:00 +03:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|