slackbot_frd 0.2.0 → 0.2.1
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/slackbot_frd/lib/slack_connection.rb +38 -7
- data/lib/slackbot_frd/slack_methods/im_open.rb +34 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9f7493d31b22bcf1ce011a8966d80c54bc11e6e2
|
4
|
+
data.tar.gz: e201692f2be3a8b5fdadd40cce393ceecc4f2937
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7585d262c05115e8878ca21dedf8f53903354a35c7a59449f970ddea9d62e875a8c761c495ffcd6efbbb21d2b7869ed260f476f20040dce33eeec60f2813d3c9
|
7
|
+
data.tar.gz: f7ed2227c9ee666af0535e6f8d5602f2cef915d67ab9f330809aad1c9a52343e600478ef1cc6b5ebf71a963d0595e6ff49a63c60f2c10496668db34f485b60a7
|
@@ -128,17 +128,29 @@ module SlackbotFrd
|
|
128
128
|
end
|
129
129
|
end
|
130
130
|
|
131
|
-
def
|
131
|
+
def send_im(user:, message:, username: nil, avatar_emoji: nil, avatar_url: nil)
|
132
|
+
send_message(
|
133
|
+
channel: im_channel_for_user(user),
|
134
|
+
message: message,
|
135
|
+
username: username,
|
136
|
+
avatar_emoji: avatar_emoji,
|
137
|
+
avatar_url: avatar_url,
|
138
|
+
channel_is_id: true
|
139
|
+
)
|
140
|
+
end
|
141
|
+
|
142
|
+
def send_message(channel:, message:, username: nil, avatar_emoji: nil, avatar_url: nil, channel_is_id: false)
|
132
143
|
if username && (avatar_emoji || avatar_url)
|
133
144
|
send_message_as_bot(
|
134
145
|
channel: channel,
|
135
146
|
message: message,
|
136
147
|
username: username,
|
137
148
|
avatar_emoji: avatar_emoji,
|
138
|
-
avatar_url: avatar_url
|
149
|
+
avatar_url: avatar_url,
|
150
|
+
channel_id_id: channel_is_id
|
139
151
|
)
|
140
152
|
else
|
141
|
-
send_message_as_user(channel: channel, message: message)
|
153
|
+
send_message_as_user(channel: channel, message: message, channel_is_id: channel_is_id)
|
142
154
|
end
|
143
155
|
end
|
144
156
|
|
@@ -183,6 +195,21 @@ module SlackbotFrd
|
|
183
195
|
SlackbotFrd::Log.debug("#{self.class}: Received response: #{resp}")
|
184
196
|
end
|
185
197
|
|
198
|
+
def im_channel_for_user(user:)
|
199
|
+
SlackbotFrd::Log.debug(
|
200
|
+
"#{self.class}: Opening or retrieving IM channel for user '#{user}'"
|
201
|
+
)
|
202
|
+
|
203
|
+
resp = JSON.parse(SlackbotFrd::SlackMethods::ImOpen.openChannel(
|
204
|
+
token: @token,
|
205
|
+
user: user_name_to_id(user)
|
206
|
+
))
|
207
|
+
|
208
|
+
SlackbotFrd::Log.debug("#{self.class}: Received response: #{resp}")
|
209
|
+
return resp["channel"]["id"] if resp["channel"]
|
210
|
+
resp
|
211
|
+
end
|
212
|
+
|
186
213
|
def users_in_channel(channel)
|
187
214
|
a = SlackMethods::ChannelsInfo.members(
|
188
215
|
token: @token,
|
@@ -258,13 +285,15 @@ module SlackbotFrd
|
|
258
285
|
end
|
259
286
|
|
260
287
|
private
|
261
|
-
def send_message_as_user(channel:, message:)
|
288
|
+
def send_message_as_user(channel:, message:, channel_is_id: false)
|
262
289
|
unless @ws
|
263
290
|
log_and_add_to_error_file(
|
264
291
|
"Cannot send message '#{message}' as user to channel '#{channel}' because not connected to wss stream"
|
265
292
|
)
|
266
293
|
end
|
267
294
|
|
295
|
+
channel_id = channel_is_id ? channel : channel_name_to_id(channel)
|
296
|
+
|
268
297
|
SlackbotFrd::Log.debug(
|
269
298
|
"#{self.class}: Sending message '#{message}' as user to channel '#{channel}'"
|
270
299
|
)
|
@@ -273,7 +302,7 @@ module SlackbotFrd
|
|
273
302
|
resp = @ws.send({
|
274
303
|
id: event_id,
|
275
304
|
type: 'message',
|
276
|
-
channel:
|
305
|
+
channel: channel_id,
|
277
306
|
text: message
|
278
307
|
}.to_json)
|
279
308
|
|
@@ -284,14 +313,16 @@ module SlackbotFrd
|
|
284
313
|
end
|
285
314
|
|
286
315
|
private
|
287
|
-
def send_message_as_bot(channel:, message:, username:, avatar_emoji: nil, avatar_url: nil)
|
316
|
+
def send_message_as_bot(channel:, message:, username:, avatar_emoji: nil, avatar_url: nil, channel_is_id: false)
|
288
317
|
SlackbotFrd::Log.debug(
|
289
318
|
"#{self.class}: Sending message '#{message}' as bot user '#{username}' to channel '#{channel}'"
|
290
319
|
)
|
291
320
|
|
321
|
+
channel_id = channel_is_id ? channel : channel_name_to_id(channel)
|
322
|
+
|
292
323
|
resp = SlackbotFrd::SlackMethods::ChatPostMessage.postMessage(
|
293
324
|
token: @token,
|
294
|
-
channel:
|
325
|
+
channel: channel_id,
|
295
326
|
message: message,
|
296
327
|
username: username,
|
297
328
|
avatar_emoji: avatar_emoji,
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'httparty'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
module SlackbotFrd
|
5
|
+
module SlackMethods
|
6
|
+
class ImOpen
|
7
|
+
include HTTParty
|
8
|
+
base_uri 'https://slack.com/api/im.open'
|
9
|
+
|
10
|
+
def self.openChannel(token:, user:)
|
11
|
+
r = ImOpen.new(
|
12
|
+
token: token,
|
13
|
+
user: user
|
14
|
+
)
|
15
|
+
r.openChannel
|
16
|
+
end
|
17
|
+
|
18
|
+
def initialize(token:, user:)
|
19
|
+
@token = token
|
20
|
+
@user = user
|
21
|
+
end
|
22
|
+
|
23
|
+
def openChannel
|
24
|
+
body = {
|
25
|
+
token: @token,
|
26
|
+
user: @user
|
27
|
+
}
|
28
|
+
|
29
|
+
@response = self.class.post('', :body => body)
|
30
|
+
@response.body
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slackbot_frd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Porter
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -179,6 +179,7 @@ files:
|
|
179
179
|
- lib/slackbot_frd/slack_methods/chat_post_message.rb
|
180
180
|
- lib/slackbot_frd/slack_methods/groups_list.rb
|
181
181
|
- lib/slackbot_frd/slack_methods/im_channels_list.rb
|
182
|
+
- lib/slackbot_frd/slack_methods/im_open.rb
|
182
183
|
- lib/slackbot_frd/slack_methods/reactions_add.rb
|
183
184
|
- lib/slackbot_frd/slack_methods/rtm_start.rb
|
184
185
|
- lib/slackbot_frd/slack_methods/users_list.rb
|