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 +4 -4
- data/bin/slackbot-frd +8 -0
- data/lib/slackbot_frd/lib/slack_connection.rb +24 -2
- data/lib/slackbot_frd/slack_methods/channels_info.rb +33 -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: b2240170ccf01432884e8c7074a50cb0f64dfa69
|
4
|
+
data.tar.gz: e7c68384e40e0c33eb2ba5e1d4559642165d0406
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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
|
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
|
+
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-
|
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
|