slackbot_frd 0.0.7 → 0.0.8

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fd42f15c6b386a233d064d8dd584806014af4435
4
- data.tar.gz: 0d7fa366f7141f126df3aa80316dabea78f1ae1c
3
+ metadata.gz: f8e1ae54ee35f6483bf1a209d5c233dc94e2b937
4
+ data.tar.gz: c8dbcc68b6a1dfcebb81226c0a16455792acae6b
5
5
  SHA512:
6
- metadata.gz: da8f260a9cb49e4506e14a7f3eca4ac994fbb1c24a7312427a65f61d80424a13cb8f1a9df45d645e3b13a2ca965dd803be19a615670fe02e96c9ceba0e6c17da
7
- data.tar.gz: 82d2a87547f7ef172814b67b5b694ec88b14aa438395cf5e396f81601aa6998c22c70b5a98a2bc1aa5c2b554aa245b3f58e39537282216c7fa6f88250bcb5c93
6
+ metadata.gz: a180c87abea6a0e14aacd4a280274458cdef7ef224649c2a58b464630d5462f74c0fed7beebd5ea344afeefe2ea87802721fbc2fcd1d9231fba6a2fb5d096c04
7
+ data.tar.gz: be3640e1231e738f9e5304096745437bb0759880b6726307c274fbfe193995878fc3485b5bc8bffd2873277f39a28681d88e4055eeabf49b6d90fb01679d1786
data/bin/slackbot-frd CHANGED
@@ -109,7 +109,7 @@ class SlackbotFrdBin < Thor
109
109
  option 'log-file', type: :string, aliases: 'lf'
110
110
  def start(*bots)
111
111
  if running?(watcher_pid)
112
- SlackbotFrd::Log.warn("Already running. Not starting again")
112
+ SlackbotFrd::Log.warn("Already running (watcher pid: '#{watcher_pid}'). Not starting again")
113
113
  return
114
114
  end
115
115
 
@@ -45,14 +45,14 @@ module SlackbotFrd
45
45
  @channel_name_to_id = {}
46
46
 
47
47
  restrict_actions_to_channels_joined
48
- SlackbotFrd::Log::debug("Done initializing #{self.class}")
48
+ SlackbotFrd::Log.debug("Done initializing #{self.class}")
49
49
  end
50
50
 
51
51
  def start
52
52
  # Write pid file
53
53
  File.write(PID_FILE_NAME, "#{Process.pid}")
54
54
 
55
- SlackbotFrd::Log::info("#{self.class}: starting event machine")
55
+ SlackbotFrd::Log.info("#{self.class}: starting event machine")
56
56
 
57
57
  EM.run do
58
58
  begin
@@ -75,7 +75,7 @@ module SlackbotFrd
75
75
  @ws.on(:close) { |event| File.delete(PID_FILE_NAME) }
76
76
  end
77
77
 
78
- SlackbotFrd::Log::debug("#{self.class}: event machine started")
78
+ SlackbotFrd::Log.debug("#{self.class}: event machine started")
79
79
  end
80
80
 
81
81
  def event_id
@@ -116,7 +116,7 @@ module SlackbotFrd
116
116
  log_and_add_to_error_file("Cannot send message '#{message}' as user to channel '#{channel}' because not connected to wss stream")
117
117
  end
118
118
 
119
- SlackbotFrd::Log::debug("#{self.class}: Sending message '#{message}' as user to channel '#{channel}'")
119
+ SlackbotFrd::Log.debug("#{self.class}: Sending message '#{message}' as user to channel '#{channel}'")
120
120
 
121
121
  begin
122
122
  resp = @ws.send({
@@ -126,14 +126,14 @@ module SlackbotFrd
126
126
  text: message
127
127
  }.to_json)
128
128
 
129
- SlackbotFrd::Log::debug("#{self.class}: Received response: #{resp}")
129
+ SlackbotFrd::Log.debug("#{self.class}: Received response: #{resp}")
130
130
  rescue SocketError => e
131
131
  log_and_add_to_error_file(socket_error_message(e))
132
132
  end
133
133
  end
134
134
 
135
135
  def send_message_as_user(channel, message, username, avatar, avatar_is_emoji)
136
- SlackbotFrd::Log::debug("#{self.class}: Sending message '#{message}' as user '#{username}' to channel '#{channel}'")
136
+ SlackbotFrd::Log.debug("#{self.class}: Sending message '#{message}' as user '#{username}' to channel '#{channel}'")
137
137
 
138
138
  resp = SlackbotFrd::SlackMethods::ChatPostMessage.postMessage(
139
139
  @token,
@@ -144,7 +144,19 @@ module SlackbotFrd
144
144
  avatar_is_emoji
145
145
  )
146
146
 
147
- SlackbotFrd::Log::debug("#{self.class}: Received response: #{resp}")
147
+ SlackbotFrd::Log.debug("#{self.class}: Received response: #{resp}")
148
+ end
149
+
150
+ def invite_user(user, channel)
151
+ SlackbotFrd::Log.debug("#{self.class}: Inviting user '#{user}' to channel '#{channel}'")
152
+
153
+ resp = SlackbotFrd::SlackMethods::ChannelsInvite.invite(
154
+ @token,
155
+ user_name_to_id(user),
156
+ channel_name_to_id(channel),
157
+ )
158
+
159
+ SlackbotFrd::Log.debug("#{self.class}: Received response: #{resp}")
148
160
  end
149
161
 
150
162
  def restrict_actions_to_channels_joined(value = true)
@@ -156,19 +168,19 @@ module SlackbotFrd
156
168
  a.map{ |id| user_id_to_name(id) }
157
169
  end
158
170
 
159
- def user_ids(force_refresh = false)
171
+ def user_ids(_force_refresh = false)
160
172
  @user_id_to_name.keys
161
173
  end
162
174
 
163
- def user_names(force_refresh = false)
175
+ def user_names(_force_refresh = false)
164
176
  @user_name_to_id.keys
165
177
  end
166
178
 
167
- def channel_ids(force_refresh = false)
179
+ def channel_ids(_force_refresh = false)
168
180
  @user_id_to_name.keys
169
181
  end
170
182
 
171
- def channel_names(force_refresh = false)
183
+ def channel_names(_force_refresh = false)
172
184
  @channel_name_to_id.keys
173
185
  end
174
186
 
@@ -177,7 +189,7 @@ module SlackbotFrd
177
189
  unless @user_id_to_name && @user_id_to_name.has_key?(user_id)
178
190
  refresh_user_info
179
191
  end
180
- SlackbotFrd::Log::warn("#{self.class}: User id '#{user_id}' not found") unless @user_id_to_name.include?(user_id)
192
+ SlackbotFrd::Log.warn("#{self.class}: User id '#{user_id}' not found") unless @user_id_to_name.include?(user_id)
181
193
  @user_id_to_name[user_id]
182
194
  end
183
195
 
@@ -186,7 +198,7 @@ module SlackbotFrd
186
198
  unless @user_name_to_id && @user_name_to_id.has_key?(user_name)
187
199
  refresh_user_info
188
200
  end
189
- SlackbotFrd::Log::warn("#{self.class}: User name '#{user_name}' not found") unless @user_name_to_id.include?(user_name)
201
+ SlackbotFrd::Log.warn("#{self.class}: User name '#{user_name}' not found") unless @user_name_to_id.include?(user_name)
190
202
  @user_name_to_id[user_name]
191
203
  end
192
204
 
@@ -194,7 +206,7 @@ module SlackbotFrd
194
206
  unless @channel_id_to_name && @channel_id_to_name.has_key?(channel_id)
195
207
  refresh_channel_info
196
208
  end
197
- SlackbotFrd::Log::warn("#{self.class}: Channel id '#{channel_id}' not found") unless @channel_id_to_name.include?(channel_id)
209
+ SlackbotFrd::Log.warn("#{self.class}: Channel id '#{channel_id}' not found") unless @channel_id_to_name.include?(channel_id)
198
210
  @channel_id_to_name[channel_id]
199
211
  end
200
212
 
@@ -204,7 +216,7 @@ module SlackbotFrd
204
216
  unless @channel_name_to_id && @channel_name_to_id.has_key?(nc)
205
217
  refresh_channel_info
206
218
  end
207
- SlackbotFrd::Log::warn("#{self.class}: Channel name '#{nc}' not found") unless @channel_name_to_id.include?(nc)
219
+ SlackbotFrd::Log.warn("#{self.class}: Channel name '#{nc}' not found") unless @channel_name_to_id.include?(nc)
208
220
  @channel_name_to_id[nc]
209
221
  end
210
222
 
@@ -228,7 +240,7 @@ module SlackbotFrd
228
240
  private
229
241
  def process_message_received(event)
230
242
  message = JSON.parse(event.data)
231
- SlackbotFrd::Log::verbose("#{self.class}: Message received: #{message}")
243
+ SlackbotFrd::Log.verbose("#{self.class}: Message received: #{message}")
232
244
  if message["type"] == "message"
233
245
  if message["subtype"] == "channel_join"
234
246
  process_join_message(message)
@@ -244,13 +256,13 @@ module SlackbotFrd
244
256
 
245
257
  private
246
258
  def process_file_share(message)
247
- SlackbotFrd::Log::verbose("#{self.class}: Processing file share: #{message}")
248
- SlackbotFrd::Log::debug("#{self.class}: Not processing file share because it is not implemented:")
259
+ SlackbotFrd::Log.verbose("#{self.class}: Processing file share: #{message}")
260
+ SlackbotFrd::Log.debug("#{self.class}: Not processing file share because it is not implemented:")
249
261
  end
250
262
 
251
263
  private
252
264
  def process_chat_message(message)
253
- SlackbotFrd::Log::verbose("#{self.class}: Processing chat message: #{message}")
265
+ SlackbotFrd::Log.verbose("#{self.class}: Processing chat message: #{message}")
254
266
 
255
267
  user = message["user"]
256
268
  user = :bot if message["subtype"] == "bot_message"
@@ -258,12 +270,12 @@ module SlackbotFrd
258
270
  text = message["text"]
259
271
 
260
272
  unless user
261
- SlackbotFrd::Log::warn("#{self.class}: Chat message doesn't include user! message: #{message}")
273
+ SlackbotFrd::Log.warn("#{self.class}: Chat message doesn't include user! message: #{message}")
262
274
  return
263
275
  end
264
276
 
265
277
  unless channel
266
- SlackbotFrd::Log::warn("#{self.class}: Chat message doesn't include channel! message: #{message}")
278
+ SlackbotFrd::Log.warn("#{self.class}: Chat message doesn't include channel! message: #{message}")
267
279
  return
268
280
  end
269
281
 
@@ -281,7 +293,7 @@ module SlackbotFrd
281
293
 
282
294
  private
283
295
  def process_join_message(message)
284
- SlackbotFrd::Log::verbose("#{self.class}: Processing join message: #{message}")
296
+ SlackbotFrd::Log.verbose("#{self.class}: Processing join message: #{message}")
285
297
  user = message["user"]
286
298
  user = :bot if message["subtype"] == "bot_message"
287
299
  channel = message["channel"]
@@ -292,7 +304,7 @@ module SlackbotFrd
292
304
 
293
305
  private
294
306
  def process_leave_message(message)
295
- SlackbotFrd::Log::verbose("#{self.class}: Processing leave message: #{message}")
307
+ SlackbotFrd::Log.verbose("#{self.class}: Processing leave message: #{message}")
296
308
  user = message["user"]
297
309
  user = :bot if message["subtype"] == "bot_message"
298
310
  channel = message["channel"]
@@ -334,7 +346,7 @@ module SlackbotFrd
334
346
 
335
347
  private
336
348
  def log_and_add_to_error_file(err)
337
- SlackbotFrd::Log::error(err)
349
+ SlackbotFrd::Log.error(err)
338
350
  File.append(@errors_file, "#{err}\n")
339
351
  end
340
352
  end
@@ -0,0 +1,35 @@
1
+ require 'httparty'
2
+ require 'json'
3
+
4
+ module SlackbotFrd
5
+ module SlackMethods
6
+ class ChannelsInvite
7
+ include HTTParty
8
+ base_uri 'https://slack.com/api/channels.invite'
9
+
10
+ attr_reader :response
11
+
12
+ def self.invite(token, user, channel)
13
+ ChannelsInvite.new(token, user, channel).run
14
+ end
15
+
16
+ def initialize(token, user, channel)
17
+ @token = token
18
+ @user = user
19
+ @channel = channel
20
+ end
21
+
22
+ def run
23
+ @response = JSON.parse(
24
+ self.class.post(
25
+ '',
26
+ body: {
27
+ token: @token, channel: @channel, user: @user
28
+ }
29
+ ).body
30
+ )
31
+ @response
32
+ end
33
+ end
34
+ end
35
+ 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.0.7
4
+ version: 0.0.8
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-05-16 00:00:00.000000000 Z
11
+ date: 2015-06-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -173,6 +173,7 @@ files:
173
173
  - lib/slackbot_frd/lib/slack_connection.rb
174
174
  - lib/slackbot_frd/lib/user_channel_callbacks.rb
175
175
  - lib/slackbot_frd/slack_methods/channels_info.rb
176
+ - lib/slackbot_frd/slack_methods/channels_invite.rb
176
177
  - lib/slackbot_frd/slack_methods/channels_list.rb
177
178
  - lib/slackbot_frd/slack_methods/chat_post_message.rb
178
179
  - lib/slackbot_frd/slack_methods/im_channels_list.rb
@@ -198,7 +199,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
198
199
  version: '0'
199
200
  requirements: []
200
201
  rubyforge_project:
201
- rubygems_version: 2.2.2
202
+ rubygems_version: 2.2.3
202
203
  signing_key:
203
204
  specification_version: 4
204
205
  summary: slackbot_frd provides a dirt-simple framework for implementing one or more