slackbot_frd 0.0.4 → 0.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cb2881a44943ab20e70ea1b0805c5f402273e273
4
- data.tar.gz: ead056bcf941443b3618bea5aaff6d7a620743f9
3
+ metadata.gz: b2240170ccf01432884e8c7074a50cb0f64dfa69
4
+ data.tar.gz: e7c68384e40e0c33eb2ba5e1d4559642165d0406
5
5
  SHA512:
6
- metadata.gz: dc6ca7b4a660ec8e3de5f0fbb91b473e5be6ea7b22929d3023d5df5a0766978c1f4202f45f11f86c7c856bfcaaf07339ecec11d195cf93b87777734c01d58c84
7
- data.tar.gz: dcd3c54bd7714e2f69a095c593caedaa5b6d361c6448b26af0655365a8895ed4b909a0cfb66a6f8d2cc83040e5585618c1e8ef31cc16a9779b123473d2e08fbf
6
+ metadata.gz: 201766121026759cf6d3d0c49e9251b0fd5513d0101ceb8d89d47e81a8241f6e3eb67f99659c022299d74f5fef8354721e2e9570b32f27791c21c880b46a6689
7
+ data.tar.gz: de8ed18267661681bb6f9d0238b285ec2d4419b156674db40a94a2b4bf5e3cb82baad9eb7e0c252023338ad28f953a5de034d48545900a17ec6409ba5731d713
data/bin/slackbot-frd CHANGED
@@ -41,6 +41,14 @@ class SlackbotFrdBin < Thor
41
41
  end
42
42
  end
43
43
 
44
+ desc "new", "Generate a new slackbot_frd project"
45
+ long_desc <<-LONGDESC
46
+ new will generate a skeleton for a new slackbot_frd project
47
+ LONGDESC
48
+ def genconfig
49
+
50
+ end
51
+
44
52
  desc "genconfig", "Generate a skeleton config file"
45
53
  long_desc <<-LONGDESC
46
54
  genconfig will generate a skeleton config file that
@@ -11,6 +11,7 @@ require 'slackbot_frd/slack_methods/rtm_start'
11
11
  require 'slackbot_frd/slack_methods/chat_post_message'
12
12
  require 'slackbot_frd/slack_methods/im_channels_list'
13
13
  require 'slackbot_frd/slack_methods/channels_list'
14
+ require 'slackbot_frd/slack_methods/channels_info'
14
15
  require 'slackbot_frd/slack_methods/users_list'
15
16
 
16
17
  module SlackbotFrd
@@ -110,7 +111,7 @@ module SlackbotFrd
110
111
  end
111
112
  end
112
113
 
113
- def send_message_as_user(channel, message)
114
+ def send_message(channel, message)
114
115
  unless @ws
115
116
  log_and_add_to_error_file("Cannot send message '#{message}' as user to channel '#{channel}' because not connected to wss stream")
116
117
  end
@@ -131,7 +132,7 @@ module SlackbotFrd
131
132
  end
132
133
  end
133
134
 
134
- def send_message(channel, message, username, avatar, avatar_is_emoji)
135
+ def send_message_as_user(channel, message, username, avatar, avatar_is_emoji)
135
136
  SlackbotFrd::Log::debug("#{self.class}: Sending message '#{message}' as user '#{username}' to channel '#{channel}'")
136
137
 
137
138
  resp = SlackbotFrd::SlackMethods::ChatPostMessage.postMessage(
@@ -150,6 +151,27 @@ module SlackbotFrd
150
151
  @restrict_actions_to_channels_joined = value
151
152
  end
152
153
 
154
+ def users_in_channel(channel)
155
+ a = SlackMethods::ChannelsInfo.members(@token, channel_name_to_id(channel))
156
+ a.map{ |id| user_id_to_name(id) }
157
+ end
158
+
159
+ def user_ids(force_refresh = false)
160
+ @user_id_to_name.keys
161
+ end
162
+
163
+ def user_names(force_refresh = false)
164
+ @user_name_to_id.keys
165
+ end
166
+
167
+ def channel_ids(force_refresh = false)
168
+ @user_id_to_name.keys
169
+ end
170
+
171
+ def channel_names(force_refresh = false)
172
+ @channel_name_to_id.keys
173
+ end
174
+
153
175
  def user_id_to_name(user_id)
154
176
  return user_id if user_id == :any || user_id == :bot
155
177
  unless @user_id_to_name && @user_id_to_name.has_key?(user_id)
@@ -0,0 +1,33 @@
1
+ require 'httparty'
2
+ require 'json'
3
+
4
+ module SlackbotFrd
5
+ module SlackMethods
6
+ class ChannelsInfo
7
+ include HTTParty
8
+ base_uri 'https://slack.com/api/channels.info'
9
+
10
+ attr_reader :response
11
+
12
+ def self.members(token, channel)
13
+ ChannelsInfo.new(token, channel).connect.members
14
+ end
15
+
16
+ def initialize(token, channel)
17
+ @token = token
18
+ @channel = channel
19
+ end
20
+
21
+ def connect
22
+ @response = JSON.parse(self.class.post('', :body => { token: @token, channel: @channel } ).body)
23
+ self
24
+ end
25
+
26
+ def members
27
+ @response["channel"]["members"]
28
+ end
29
+ alias_method :users, :members
30
+
31
+ end
32
+ end
33
+ 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.4
4
+ version: 0.0.5
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-04-09 00:00:00.000000000 Z
11
+ date: 2015-04-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -158,6 +158,7 @@ files:
158
158
  - lib/slackbot_frd/lib/log.rb
159
159
  - lib/slackbot_frd/lib/slack_connection.rb
160
160
  - lib/slackbot_frd/lib/user_channel_callbacks.rb
161
+ - lib/slackbot_frd/slack_methods/channels_info.rb
161
162
  - lib/slackbot_frd/slack_methods/channels_list.rb
162
163
  - lib/slackbot_frd/slack_methods/chat_post_message.rb
163
164
  - lib/slackbot_frd/slack_methods/im_channels_list.rb