slack-bot-server 0.4.4 → 0.4.5
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/CHANGELOG.md +16 -2
- data/lib/slack_bot_server/bot.rb +24 -20
- data/lib/slack_bot_server/logging.rb +28 -0
- data/lib/slack_bot_server/server.rb +7 -9
- data/lib/slack_bot_server/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f1086fe2f192f0ea950041f91799d67bc8e7966e
|
4
|
+
data.tar.gz: 85e02d179a2fb1ca62c8064206244fb3da90c197
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6c48425cac63a28ffe08a8af43702183b532127307f61807db94088470e6a4d050011fb5c5b732ba10d00ab8eab51736b73b9c98aa7d2e97fbc6fb5d803e6daa
|
7
|
+
data.tar.gz: 3a09cc3baa9e35cf4193a7638627e584b7b7413ea85fe06ed2b9470393fb295890255bd66cdb6bde928946c44df03d873c3fc373f7151a0a1210392d1b212b45
|
data/CHANGELOG.md
CHANGED
@@ -1,28 +1,42 @@
|
|
1
1
|
## Unreleased
|
2
2
|
|
3
|
+
## 0.4.5
|
4
|
+
|
5
|
+
### Added
|
6
|
+
- Add `on_slack_event` for adding low-level event callbacks like `team_join` or `presence_changed`
|
7
|
+
|
8
|
+
|
3
9
|
## 0.4.4
|
4
10
|
|
5
|
-
###
|
11
|
+
### Added
|
6
12
|
- Add new bot-private API method `user_message?(data)`, which returns true if the message is some utterance from a user
|
13
|
+
|
14
|
+
### Changes
|
7
15
|
- Allow replying from the low-level `on(:message)` callback, although caution should be exercised when doing this (i.e. make sure you aren't replying to bot or other low-level API messages!)
|
8
16
|
|
17
|
+
|
9
18
|
## 0.4.3
|
10
19
|
|
11
|
-
###
|
20
|
+
### Added
|
12
21
|
- Add `clear` method to queues
|
22
|
+
|
23
|
+
### Changes
|
13
24
|
- Upgrate `slack-ruby-client` dependency to latest version
|
14
25
|
|
26
|
+
|
15
27
|
## 0.4.2
|
16
28
|
|
17
29
|
### Changes
|
18
30
|
- Re-use error raising from within Slack::Web::Api
|
19
31
|
- Prevent bots with the same key as existing bots from being added (@keydunov)
|
20
32
|
|
33
|
+
|
21
34
|
## 0.4.1
|
22
35
|
|
23
36
|
### Changes
|
24
37
|
- Fixed detection of RTM-compatible messages
|
25
38
|
|
39
|
+
|
26
40
|
## 0.4.0
|
27
41
|
|
28
42
|
### Added
|
data/lib/slack_bot_server/bot.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'slack_bot_server/logging'
|
1
2
|
require 'slack'
|
2
3
|
require 'slack-ruby-client'
|
3
4
|
|
@@ -31,6 +32,8 @@ require 'slack-ruby-client'
|
|
31
32
|
# end
|
32
33
|
#
|
33
34
|
class SlackBotServer::Bot
|
35
|
+
include SlackBotServer::Logging
|
36
|
+
extend SlackBotServer::Logging
|
34
37
|
|
35
38
|
# The user ID of the special slack user +SlackBot+
|
36
39
|
SLACKBOT_USER_ID = 'USLACKBOT'
|
@@ -161,8 +164,7 @@ class SlackBotServer::Bot
|
|
161
164
|
@last_received_user_message = data if user_message?(data)
|
162
165
|
handle_message(data)
|
163
166
|
rescue => e
|
164
|
-
|
165
|
-
log backtrace: e.backtrace
|
167
|
+
log_error e
|
166
168
|
end
|
167
169
|
end
|
168
170
|
|
@@ -172,6 +174,8 @@ class SlackBotServer::Bot
|
|
172
174
|
run_callbacks(:finish)
|
173
175
|
end
|
174
176
|
|
177
|
+
register_low_level_callbacks_on(@client)
|
178
|
+
|
175
179
|
@client.start_async
|
176
180
|
rescue Slack::Web::Api::Error => e
|
177
181
|
raise ConnectionError.new(e.message, e.response)
|
@@ -329,11 +333,16 @@ class SlackBotServer::Bot
|
|
329
333
|
end
|
330
334
|
end
|
331
335
|
end
|
332
|
-
end
|
333
336
|
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
+
def low_level_callbacks
|
338
|
+
@low_level_callbacks ||= []
|
339
|
+
end
|
340
|
+
|
341
|
+
# Define a callback to use when a low-level slack event is fired
|
342
|
+
def on_slack_event(name, &block)
|
343
|
+
self.low_level_callbacks << [name, block]
|
344
|
+
end
|
345
|
+
end
|
337
346
|
|
338
347
|
on :finish do
|
339
348
|
start if @running
|
@@ -359,21 +368,16 @@ class SlackBotServer::Bot
|
|
359
368
|
end
|
360
369
|
end
|
361
370
|
|
362
|
-
def
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
text = if args.length == 1 && args.first.is_a?(String)
|
372
|
-
args.first
|
373
|
-
else
|
374
|
-
args.map { |a| a.is_a?(String) ? a : a.inspect }.join(", ")
|
371
|
+
def register_low_level_callbacks_on(client)
|
372
|
+
self.class.low_level_callbacks.each do |(type, callback)|
|
373
|
+
client.on(type) do |*args|
|
374
|
+
begin
|
375
|
+
callback.call(*args)
|
376
|
+
rescue => e
|
377
|
+
log_error e
|
378
|
+
end
|
379
|
+
end
|
375
380
|
end
|
376
|
-
"[BOT/#{bot_user_name}] #{text}"
|
377
381
|
end
|
378
382
|
|
379
383
|
def is_im_channel?(id)
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module SlackBotServer::Logging
|
2
|
+
def log(*args)
|
3
|
+
SlackBotServer.logger.info(log_string(*args))
|
4
|
+
end
|
5
|
+
|
6
|
+
def debug(*args)
|
7
|
+
SlackBotServer.logger.debug(log_string(*args))
|
8
|
+
end
|
9
|
+
|
10
|
+
def log_error(e)
|
11
|
+
SlackBotServer.logger.warn("ERROR: #{e} - #{e.message}")
|
12
|
+
SlackBotServer.logger.warn(e.backtrace.join("\n"))
|
13
|
+
end
|
14
|
+
|
15
|
+
def log_string(*args)
|
16
|
+
text = if args.length == 1 && args.first.is_a?(String)
|
17
|
+
args.first
|
18
|
+
else
|
19
|
+
args.map { |a| a.is_a?(String) ? a : a.inspect }.join(", ")
|
20
|
+
end
|
21
|
+
prefix = if self.respond_to?(:bot_user_name)
|
22
|
+
"[BOT/#{bot_user_name}]"
|
23
|
+
else
|
24
|
+
nil
|
25
|
+
end
|
26
|
+
[prefix, text].join(" ")
|
27
|
+
end
|
28
|
+
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'slack_bot_server/bot'
|
2
2
|
require 'slack_bot_server/simple_bot'
|
3
3
|
require 'slack_bot_server/redis_queue'
|
4
|
+
require 'slack_bot_server/logging'
|
4
5
|
require 'eventmachine'
|
5
6
|
|
6
7
|
# Implements a server for running multiple Slack bots. Bots can be
|
@@ -48,6 +49,8 @@ require 'eventmachine'
|
|
48
49
|
# itself
|
49
50
|
#
|
50
51
|
class SlackBotServer::Server
|
52
|
+
include SlackBotServer::Logging
|
53
|
+
|
51
54
|
attr_reader :queue
|
52
55
|
|
53
56
|
# Creates a new {Server}
|
@@ -164,15 +167,10 @@ class SlackBotServer::Server
|
|
164
167
|
end
|
165
168
|
end
|
166
169
|
|
167
|
-
def log(message)
|
168
|
-
|
169
|
-
|
170
|
-
end
|
171
|
-
|
172
|
-
def log_error(e)
|
173
|
-
SlackBotServer.logger.warn("Error in server: #{e} - #{e.message}")
|
174
|
-
SlackBotServer.logger.warn(e.backtrace.join("\n"))
|
175
|
-
end
|
170
|
+
# def log(message)
|
171
|
+
# text = message.is_a?(String) ? message : message.inspect
|
172
|
+
# SlackBotServer.logger.info(text)
|
173
|
+
# end
|
176
174
|
|
177
175
|
def with_bot(key)
|
178
176
|
if bot = bot(key)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slack-bot-server
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Adam
|
@@ -156,6 +156,7 @@ files:
|
|
156
156
|
- lib/slack_bot_server.rb
|
157
157
|
- lib/slack_bot_server/bot.rb
|
158
158
|
- lib/slack_bot_server/local_queue.rb
|
159
|
+
- lib/slack_bot_server/logging.rb
|
159
160
|
- lib/slack_bot_server/redis_queue.rb
|
160
161
|
- lib/slack_bot_server/remote_control.rb
|
161
162
|
- lib/slack_bot_server/server.rb
|