slackbot_frd 0.0.7 → 0.0.8

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