simple_slack 0.2.5 → 0.2.6
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/lib/simple_slack/botter.rb +8 -3
- data/lib/simple_slack/getter.rb +63 -33
- data/lib/simple_slack/poster.rb +22 -14
- data/lib/simple_slack/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce3b8f3eb317bfeb9a76992379ed8b1f76a3d744
|
4
|
+
data.tar.gz: 28a3b0188ba80a3558464ff196311017f7789fa9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cf83868cb60a91e183058da8add0743aa948e0a002ee6dcc07fc71f688c12fb5ebd696bd2cc43be5bcb2e04137b1c71ed93664ce03f15781cfdc3b67169746bc
|
7
|
+
data.tar.gz: 0f39c119c8e1d9c23d84efdf3ca35ff184721436f448ae3d0e0ecbabe964b36d4054266dc76b802e38597191057c8e8fe4e9a086ff54f15150d62848caa9c22e
|
data/lib/simple_slack/botter.rb
CHANGED
@@ -11,6 +11,7 @@ class SimpleSlack::Botter
|
|
11
11
|
@channel = set_condition_channel(channel) if channel
|
12
12
|
@user = set_condition_user(user) if user
|
13
13
|
@text = set_condition_text(text) if text
|
14
|
+
{ channel: @channel, user: @user, text: @text }
|
14
15
|
end
|
15
16
|
|
16
17
|
def set_responce(channel: nil , text: nil, user: nil)
|
@@ -20,6 +21,7 @@ class SimpleSlack::Botter
|
|
20
21
|
if block_given?
|
21
22
|
@responce_block = Proc.new(&yield)
|
22
23
|
end
|
24
|
+
{ channel: @responce_channel, user: @responce_user, text: @responce_text }
|
23
25
|
end
|
24
26
|
|
25
27
|
def status
|
@@ -74,7 +76,8 @@ class SimpleSlack::Botter
|
|
74
76
|
end
|
75
77
|
|
76
78
|
def set_condition_channel(channel)
|
77
|
-
return nil
|
79
|
+
return nil if channel.nil?
|
80
|
+
return "all" if channel.to_s == "all" rescue false
|
78
81
|
case channel
|
79
82
|
when String
|
80
83
|
@client.get.channel(channel)
|
@@ -90,7 +93,8 @@ class SimpleSlack::Botter
|
|
90
93
|
end
|
91
94
|
|
92
95
|
def set_condition_user(user)
|
93
|
-
return nil
|
96
|
+
return nil if user.nil?
|
97
|
+
return "all" if user.to_s == "all" rescue false
|
94
98
|
case user
|
95
99
|
when String
|
96
100
|
@client.get.user(user)
|
@@ -106,7 +110,8 @@ class SimpleSlack::Botter
|
|
106
110
|
end
|
107
111
|
|
108
112
|
def set_condition_text(text)
|
109
|
-
return nil
|
113
|
+
return nil if text.nil?
|
114
|
+
return "all" if text.to_s == "all" rescue false
|
110
115
|
case text
|
111
116
|
when String
|
112
117
|
text.gsub(/\p{blank}/,"\s").strip.split("\s")
|
data/lib/simple_slack/getter.rb
CHANGED
@@ -3,72 +3,89 @@ class SimpleSlack::Getter
|
|
3
3
|
@slack = slack
|
4
4
|
end
|
5
5
|
|
6
|
-
|
6
|
+
# use options for
|
7
|
+
# :is_channel, :creator, :members, :topic, :purpose, :num_members, etc
|
8
|
+
def channels(options = [])
|
7
9
|
channels = @slack.channels_list
|
8
10
|
channels["channels"].map do |channel|
|
9
|
-
{
|
11
|
+
add_params = options.empty? ? {} : options_to_hash(options, channel)
|
12
|
+
{ id: channel["id"], name: channel["name"] }.merge(add_params)
|
10
13
|
end.sort_by {|ch| ch[:name] }
|
11
14
|
end
|
12
15
|
|
13
|
-
def channel(key)
|
16
|
+
def channel(key, options = [])
|
14
17
|
key.to_s =~ /\AC.{8}\Z/ ? key_id = key : key_name = key
|
15
|
-
|
18
|
+
channel_list = channels(options)
|
16
19
|
if key_id
|
17
|
-
|
20
|
+
channel_list.find{|ch| ch[:id] == key_id }
|
18
21
|
elsif key_name
|
19
|
-
|
20
|
-
else
|
21
|
-
"not found"
|
22
|
+
channel_list.find{|ch| ch[:name] == key_name }
|
22
23
|
end
|
23
24
|
end
|
24
25
|
|
25
|
-
|
26
|
+
# use options for
|
27
|
+
# :real_name, :is_admin, :is_bot, etc...
|
28
|
+
def users(options = [])
|
26
29
|
users = @slack.users_list
|
27
30
|
users["members"].map do |user|
|
28
|
-
{
|
31
|
+
add_params = options.empty? ? {} : options_to_hash(options, user)
|
32
|
+
{ id: user["id"], name: user["name"] }.merge(add_params)
|
29
33
|
end.sort_by {|ch| ch[:name] }
|
30
34
|
end
|
31
35
|
|
32
|
-
def user(key)
|
36
|
+
def user(key, options = [])
|
33
37
|
key.to_s =~ /\AU.{8}\Z/ ? key_id = key : key_name = key
|
34
|
-
|
38
|
+
user_list = users(options)
|
35
39
|
if key_id
|
36
|
-
|
40
|
+
user_list.find{|user| user[:id] == key_id }
|
37
41
|
elsif key_name
|
38
|
-
|
39
|
-
else
|
40
|
-
"not found"
|
42
|
+
user_list.find{|user| user[:name] == key_name }
|
41
43
|
end
|
42
44
|
end
|
43
45
|
|
44
|
-
|
45
|
-
|
46
|
-
|
46
|
+
# use options for
|
47
|
+
# :image_24, :image_32, :image_48, image_72, etc...
|
48
|
+
def images(options = [])
|
49
|
+
users = @slack.users_list
|
50
|
+
users["members"].map do |user|
|
51
|
+
add_params = options.empty? ? {} : options_to_hash(options, user["profile"])
|
52
|
+
{ id: user["id"], name: user["name"], image: user["profile"]["image_24"] }.merge(add_params)
|
47
53
|
end
|
48
54
|
end
|
49
55
|
|
50
|
-
def image(
|
51
|
-
|
52
|
-
|
56
|
+
def image(key, options = [])
|
57
|
+
key.to_s =~ /\AU.{8}\Z/ ? key_id = key : key_name = key
|
58
|
+
image_list = images(options)
|
59
|
+
if key_id
|
60
|
+
image_list.find{|user| user[:id] == key_id }
|
61
|
+
elsif key_name
|
62
|
+
image_list.find{|user| user[:name] == key_name }
|
63
|
+
end
|
53
64
|
end
|
54
65
|
|
55
|
-
|
66
|
+
# use options for
|
67
|
+
# :created, :is_im, :is_org_shared, :is_user_deleted
|
68
|
+
def ims(options = [])
|
56
69
|
im_list = @slack.im_list
|
57
|
-
im_list["ims"].map do |
|
58
|
-
im_user = if
|
59
|
-
{ id:
|
70
|
+
im_list["ims"].map do |im|
|
71
|
+
im_user = if im["user"] == "USLACKBOT"
|
72
|
+
{ id: im["user"], name: "slackbot" }
|
60
73
|
else
|
61
|
-
user(
|
74
|
+
user(im["user"])
|
62
75
|
end
|
63
|
-
{
|
76
|
+
add_params = options.empty? ? {} : options_to_hash(options, im)
|
77
|
+
{ id: im["id"], user: im_user }.merge(add_params)
|
64
78
|
end
|
65
79
|
end
|
66
80
|
|
67
|
-
def im(key)
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
81
|
+
def im(key, options = [])
|
82
|
+
key.to_s =~ /\AU.{8}\Z/ ? key_id = key : key_name = key
|
83
|
+
im_list = ims(options)
|
84
|
+
if key_id
|
85
|
+
im_list.find{|im| im[:user][:id] == key_id }
|
86
|
+
elsif key_name
|
87
|
+
im_list.find{|im| im[:user][:name] == key_name }
|
88
|
+
end
|
72
89
|
end
|
73
90
|
|
74
91
|
def chats
|
@@ -78,4 +95,17 @@ class SimpleSlack::Getter
|
|
78
95
|
def chat
|
79
96
|
"yet"
|
80
97
|
end
|
98
|
+
|
99
|
+
private
|
100
|
+
|
101
|
+
def options_to_hash(options, type = {})
|
102
|
+
marged_option = {}
|
103
|
+
options.each do |op|
|
104
|
+
marged_option.merge!({ op.to_sym => type[op.to_s] })
|
105
|
+
end
|
106
|
+
|
107
|
+
marged_option
|
108
|
+
end
|
109
|
+
|
110
|
+
|
81
111
|
end
|
data/lib/simple_slack/poster.rb
CHANGED
@@ -4,42 +4,50 @@ class SimpleSlack::Poster
|
|
4
4
|
@simple_slack = simple_slack
|
5
5
|
end
|
6
6
|
|
7
|
-
def channel(to: , text: , name: "slacker")
|
8
|
-
|
9
|
-
send_chat(username: name, channel: id, text: text)
|
7
|
+
def channel(to: , text: , name: "slacker", **options)
|
8
|
+
id = convert_channel_to_id(to.to_s)
|
9
|
+
send_chat({ username: name, channel: id, text: text }.merge(options))
|
10
10
|
end
|
11
11
|
|
12
12
|
def user(to: , text: , name: "slacker")
|
13
13
|
"yet"
|
14
14
|
end
|
15
15
|
|
16
|
-
def chat(channel: nil, user: nil, text: , name: "slacker")
|
16
|
+
def chat(channel: nil, user: nil, text: , name: "slacker", **options)
|
17
17
|
if channel
|
18
|
-
self.channel(to: channel, text: text, name: name)
|
18
|
+
self.channel({ to: channel, text: text, name: name }.merge(options))
|
19
19
|
elsif user
|
20
20
|
"yet"
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
24
|
def im(to: , text: , name: "slacker")
|
25
|
-
|
25
|
+
id = convert_im_to_id(to.to_s)
|
26
26
|
send_chat(username: name, channel: id, text: text)
|
27
27
|
end
|
28
28
|
|
29
29
|
private
|
30
30
|
|
31
|
-
def send_chat(username: , channel: , text: , icon_emoji: ":ghost:")
|
32
|
-
result = @slack.chat_postMessage(username: username, channel: channel, text: text, icon_emoji: icon_emoji)
|
31
|
+
def send_chat(username: , channel: , text: , icon_emoji: ":ghost:", **options)
|
32
|
+
result = @slack.chat_postMessage({ username: username, channel: channel, text: text, icon_emoji: icon_emoji }.merge(options))
|
33
33
|
result["ok"]
|
34
34
|
end
|
35
35
|
|
36
|
-
def
|
37
|
-
channel = @simple_slack.get.channel(
|
38
|
-
channel
|
36
|
+
def convert_channel_to_id(key)
|
37
|
+
channel = @simple_slack.get.channel(key)
|
38
|
+
if channel
|
39
|
+
channel[:id]
|
40
|
+
else
|
41
|
+
raise "チャンネルが見つかりませんでした。"
|
42
|
+
end
|
39
43
|
end
|
40
44
|
|
41
|
-
def
|
42
|
-
im = @simple_slack.get.im(
|
43
|
-
im
|
45
|
+
def convert_im_to_id(key)
|
46
|
+
im = @simple_slack.get.im(key)
|
47
|
+
if im
|
48
|
+
im[:id]
|
49
|
+
else
|
50
|
+
raise "IMが見つかりませんでした。"
|
51
|
+
end
|
44
52
|
end
|
45
53
|
end
|
data/lib/simple_slack/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_slack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- toririn
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-07-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|