slackbot_frd 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|