boty 0.0.9 → 0.0.10
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/Gemfile.lock +1 -1
- data/lib/boty/bot.rb +9 -0
- data/lib/boty/cli.rb +12 -8
- data/lib/boty/message.rb +3 -4
- data/lib/boty/slack.rb +5 -0
- data/lib/boty/slack/channel.rb +11 -0
- data/lib/boty/slack/chat.rb +7 -0
- data/lib/boty/slack/im.rb +15 -0
- data/lib/boty/slack/user.rb +11 -0
- data/lib/boty/slack/users.rb +15 -0
- data/lib/boty/version.rb +1 -1
- data/script/remember.rb +18 -0
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 21a4d56f540118ad8858dc94e9e2bd2e193ab74d
|
4
|
+
data.tar.gz: db894f4d3e4a3c2b73ede86fc46270a25ace7ace
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b5c89bbaaafd1af6e2220b49c48723d472459eebc0e6d37ebce5d0fcd61469e03e16f642810984cc785eba23066704cec3138317f2a035921026058ea3055d5c
|
7
|
+
data.tar.gz: 9a8da21b939af7e7d386b956bd63f1244bd13ecd04794d459432bdab17da262b83d19158f34589502685badfb00f9e7cdf56d72cfd2f1f9d036b8e0b521f11ac
|
data/Gemfile.lock
CHANGED
data/lib/boty/bot.rb
CHANGED
@@ -51,6 +51,15 @@ module Boty
|
|
51
51
|
}
|
52
52
|
end
|
53
53
|
|
54
|
+
def im(message)
|
55
|
+
logger.debug { "sending im messge to #{@_message.user.name}" }
|
56
|
+
Slack.chat.post_im @_message.user.id, message
|
57
|
+
end
|
58
|
+
|
59
|
+
def brain
|
60
|
+
@brain ||= {}
|
61
|
+
end
|
62
|
+
|
54
63
|
private
|
55
64
|
|
56
65
|
def scripts_to_load
|
data/lib/boty/cli.rb
CHANGED
@@ -13,14 +13,9 @@ module Boty
|
|
13
13
|
"Creates a BOT_NAME dir with your new bot structure."
|
14
14
|
def new(bot_name)
|
15
15
|
@bot_name = bot_name
|
16
|
-
acquire_bot_info
|
16
|
+
acquire_bot_info
|
17
17
|
directory "project", bot_name, verbose: verbose
|
18
|
-
|
19
|
-
# for some reason the example .rspec isn't been copied
|
20
|
-
create_file ".rspec", "--require=spec_helper"
|
21
|
-
run "chmod +x bot"
|
22
|
-
run "bundle install"
|
23
|
-
end
|
18
|
+
after_create
|
24
19
|
end
|
25
20
|
|
26
21
|
private
|
@@ -29,9 +24,18 @@ module Boty
|
|
29
24
|
options[:verbose]
|
30
25
|
end
|
31
26
|
|
32
|
-
def acquire_bot_info
|
27
|
+
def acquire_bot_info
|
33
28
|
@company = ask("What is your Slack company name?") || "acme"
|
34
29
|
@api_key = ask("What is the #{@bot_name} api key?") || "omg-lol-bbq"
|
35
30
|
end
|
31
|
+
|
32
|
+
def after_create
|
33
|
+
inside @bot_name do
|
34
|
+
# for some reason the example .rspec isn't been copied
|
35
|
+
create_file ".rspec", "--require=spec_helper"
|
36
|
+
run "chmod +x bot"
|
37
|
+
run "bundle install"
|
38
|
+
end
|
39
|
+
end
|
36
40
|
end
|
37
41
|
end
|
data/lib/boty/message.rb
CHANGED
@@ -4,9 +4,8 @@ module Boty
|
|
4
4
|
attr_reader :match
|
5
5
|
|
6
6
|
def initialize(data, match: nil)
|
7
|
-
@id = data["user"]
|
8
7
|
@text = data["text"]
|
9
|
-
@user = data["user"]
|
8
|
+
@user = Slack.users.info data["user"]
|
10
9
|
@channel = data["channel"]
|
11
10
|
@ts = data["ts"]
|
12
11
|
@team = data["team"]
|
@@ -15,9 +14,9 @@ module Boty
|
|
15
14
|
|
16
15
|
def from?(author)
|
17
16
|
if author.respond_to? :id
|
18
|
-
@id == author.id
|
17
|
+
@user.id == author.id
|
19
18
|
else
|
20
|
-
@id == author
|
19
|
+
@user.id == author
|
21
20
|
end
|
22
21
|
end
|
23
22
|
end
|
data/lib/boty/slack.rb
CHANGED
@@ -1,4 +1,8 @@
|
|
1
1
|
require "boty/slack/url"
|
2
|
+
require "boty/slack/channel"
|
3
|
+
require "boty/slack/im"
|
4
|
+
require "boty/slack/user"
|
5
|
+
require "boty/slack/users"
|
2
6
|
require "boty/slack/chat"
|
3
7
|
require "boty/slack/rtm"
|
4
8
|
|
@@ -7,6 +11,7 @@ module Boty
|
|
7
11
|
class << self
|
8
12
|
def chat; @chat ||= Chat.new end
|
9
13
|
def rtm; @rtm ||= RTM.new end
|
14
|
+
def users; @users ||= Users.new end
|
10
15
|
end
|
11
16
|
end
|
12
17
|
end
|
data/lib/boty/slack/chat.rb
CHANGED
@@ -4,6 +4,8 @@ module Boty
|
|
4
4
|
include Slack::URL
|
5
5
|
url "https://slack.com/api/chat.postMessage"
|
6
6
|
|
7
|
+
def im; @im ||= IM.new end
|
8
|
+
|
7
9
|
def post_message(message, parameters = {})
|
8
10
|
defaults = {
|
9
11
|
as_user: true,
|
@@ -12,6 +14,11 @@ module Boty
|
|
12
14
|
}
|
13
15
|
URL.get parameterize(defaults.merge parameters)
|
14
16
|
end
|
17
|
+
|
18
|
+
def post_im(user, message)
|
19
|
+
channel = im.open user
|
20
|
+
post_message message, channel: channel.id
|
21
|
+
end
|
15
22
|
end
|
16
23
|
end
|
17
24
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Boty
|
2
|
+
module Slack
|
3
|
+
class IM
|
4
|
+
include Slack::URL
|
5
|
+
url "https://slack.com/api/im"
|
6
|
+
|
7
|
+
def open(user, parameters = {})
|
8
|
+
defaults = { user: user }
|
9
|
+
url = parameterize defaults.merge(parameters), path: ".open"
|
10
|
+
info = URL.get(url) || {}
|
11
|
+
Slack::Channel.new id: Hash(info["channel"])["id"], info: info
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Boty
|
2
|
+
module Slack
|
3
|
+
class Users
|
4
|
+
include Slack::URL
|
5
|
+
url "https://slack.com/api/users"
|
6
|
+
|
7
|
+
def info(user_id, parameters = {})
|
8
|
+
defaults = { user: user_id }
|
9
|
+
url = parameterize defaults.merge(parameters), path: ".info"
|
10
|
+
info = URL.get url
|
11
|
+
Slack::User.new info["user"]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/boty/version.rb
CHANGED
data/script/remember.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
desc "remember: I'm at the dentist",
|
2
|
+
"Instructs #{name} about something happening with the user."
|
3
|
+
respond(/remember(:?) (.+)/i) do |message|
|
4
|
+
brain[:user] ||= {}
|
5
|
+
brain[:user][message.user.name] ||= []
|
6
|
+
brain[:user][message.user.name] << message.match[2]
|
7
|
+
im "No worries, your secrets aren't safe with me... oh wait..."
|
8
|
+
end
|
9
|
+
|
10
|
+
desc "about user julian",
|
11
|
+
"Retrieves information stored in the brain section :user for \"julian\"."
|
12
|
+
respond(/about (\w+\b)(:?) (.+)/i) do |message|
|
13
|
+
user = message.match[3]
|
14
|
+
im "I'm glad you need my knowlege on #{message.match[1]}, #{message.user.name}."
|
15
|
+
im "I can tell you somethings about #{user}."
|
16
|
+
im "What I know... lets see..."
|
17
|
+
brain[message.match[1].to_sym][user].each do |info| im info end
|
18
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: boty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ricardo Valeriano
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-11-
|
11
|
+
date: 2015-11-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: eventmachine
|
@@ -182,14 +182,19 @@ files:
|
|
182
182
|
- lib/boty/rspec.rb
|
183
183
|
- lib/boty/session.rb
|
184
184
|
- lib/boty/slack.rb
|
185
|
+
- lib/boty/slack/channel.rb
|
185
186
|
- lib/boty/slack/chat.rb
|
187
|
+
- lib/boty/slack/im.rb
|
186
188
|
- lib/boty/slack/rtm.rb
|
187
189
|
- lib/boty/slack/url.rb
|
190
|
+
- lib/boty/slack/user.rb
|
191
|
+
- lib/boty/slack/users.rb
|
188
192
|
- lib/boty/version.rb
|
189
193
|
- lib/tasks/.keep
|
190
194
|
- log/.keep
|
191
195
|
- script/knows.rb
|
192
196
|
- script/pug.rb
|
197
|
+
- script/remember.rb
|
193
198
|
- template/project/%bot_name%.rb
|
194
199
|
- template/project/.env.local.tt
|
195
200
|
- template/project/Gemfile
|