ruboty-chatwork 0.0.2 → 0.0.3
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/README.md +12 -0
- data/lib/ruboty/adapters/chatwork.rb +42 -7
- data/lib/ruboty/chatwork/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: 8a4d6f6a32e777888e2529adbd2ee2028508f03b
|
4
|
+
data.tar.gz: 8d96ddb59bc8b2df1ac4fbae33e6e72a07453a88
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d1a78528b9f1dc5c0bd4c5d31bff60337e2ce11b65f03576cefe64891224cb9043fae21de29970b9a71afea24d7f471d5c1819efbe4114c9ffc75c4d21969851
|
7
|
+
data.tar.gz: 24099b27170a9a89e5a3e319f5e51d0a51a05b5e1bdb48c0ea1632ad8442a07579753505bfcf5c4d05512072691afcbece75176593a948e5b8670d8ec0d2e0c9
|
data/README.md
CHANGED
@@ -16,8 +16,20 @@ gem 'ruboty-chatwork'
|
|
16
16
|
CHATWORK_API_TOKEN - ChatWork API Token
|
17
17
|
CHATWORK_ROOM - ChatWork Room ID
|
18
18
|
CHATWORK_API_RATE - ChatWork API Rate(Requests per Hour)
|
19
|
+
CHATWORK_ROOM_FOR_SAYING - ChatWork Room ID for Saying(Optional)
|
19
20
|
```
|
20
21
|
|
22
|
+
## HOW TO SET THE ROOM TO SAY MESSAGE
|
23
|
+
- Priority is high in numerical order (lower is ignored)
|
24
|
+
1. `room_id:12345678` statement at last in message by saying
|
25
|
+
- ex. `ruboty Good Morning! room_id:12345678`
|
26
|
+
2. `room_id` key in `reply` method
|
27
|
+
- ex. `message.reply("Hello!", room_id:12345678)`
|
28
|
+
3. ENV["CHATWORK_ROOM_FOR_SAYING"]
|
29
|
+
4. ENV["CHATWORK_ROOM"]
|
30
|
+
- Note
|
31
|
+
- regexp of extracting `room_id` is poor ;)
|
32
|
+
|
21
33
|
## Contributing
|
22
34
|
|
23
35
|
1. Fork it ( http://github.com/mhag/ruboty-chatwork/fork )
|
@@ -18,9 +18,13 @@ module Ruboty
|
|
18
18
|
|
19
19
|
def say(message)
|
20
20
|
pp message
|
21
|
-
|
21
|
+
|
22
|
+
url_for_saying = chatwork_messages_url_for_saying(message)
|
23
|
+
|
24
|
+
req = Net::HTTP::Post.new(url_for_saying.path, headers)
|
22
25
|
req.form_data = { 'body' => message[:body] }
|
23
|
-
|
26
|
+
|
27
|
+
https = Net::HTTP.new(url_for_saying.host, url_for_saying.port)
|
24
28
|
https.use_ssl = true
|
25
29
|
https.start {|https| https.request(req) }
|
26
30
|
end
|
@@ -45,6 +49,14 @@ module Ruboty
|
|
45
49
|
end
|
46
50
|
memoize :chatwork_messages_url
|
47
51
|
|
52
|
+
def chatwork_room_for_saying(message)
|
53
|
+
message[:original][:room_id] || message[:room_id] || ENV["CHATWORK_ROOM_FOR_SAYING"] || ENV["CHATWORK_ROOM"]
|
54
|
+
end
|
55
|
+
|
56
|
+
def chatwork_messages_url_for_saying(message)
|
57
|
+
URI.join(chatwork_url, "/v2/rooms/#{chatwork_room_for_saying(message)}/messages")
|
58
|
+
end
|
59
|
+
|
48
60
|
def chatwork_api_rate
|
49
61
|
ENV["CHATWORK_API_RATE"].to_i
|
50
62
|
end
|
@@ -62,19 +74,42 @@ module Ruboty
|
|
62
74
|
req = Net::HTTP::Get.new(chatwork_messages_url.path, headers)
|
63
75
|
https = Net::HTTP.new(chatwork_messages_url.host, chatwork_messages_url.port)
|
64
76
|
https.use_ssl = true
|
77
|
+
|
65
78
|
res = https.start {|https| https.request(req) }
|
66
79
|
pp res.body
|
80
|
+
|
67
81
|
unless res.body.nil?
|
68
|
-
message
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
82
|
+
message = JSON.parse(res.body)
|
83
|
+
message.each do | m |
|
84
|
+
original_body = m['body']
|
85
|
+
|
86
|
+
body = remove_room_id_statement(original_body)
|
87
|
+
from_name = m['account']['name']
|
88
|
+
room_id = extract_room_id_statement(original_body)
|
89
|
+
|
90
|
+
robot.receive(
|
91
|
+
body: body,
|
92
|
+
from_name: from_name,
|
93
|
+
room_id: room_id,
|
94
|
+
)
|
95
|
+
end
|
73
96
|
end
|
74
97
|
|
75
98
|
sleep (60 * 60) / chatwork_api_rate
|
76
99
|
end
|
77
100
|
end
|
101
|
+
|
102
|
+
def extract_room_id_statement(original_body)
|
103
|
+
original_body[/(.*)( room_id:([0-9]+))\z/, 3]
|
104
|
+
end
|
105
|
+
|
106
|
+
def remove_room_id_statement(original_body)
|
107
|
+
if !(original_body[/(.*)( room_id:([0-9]+)\z)/, 1].nil?)
|
108
|
+
return original_body[/(.*)( room_id:([0-9]+)\z)/, 1].rstrip
|
109
|
+
else
|
110
|
+
original_body
|
111
|
+
end
|
112
|
+
end
|
78
113
|
end
|
79
114
|
end
|
80
115
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruboty-chatwork
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mhag
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-11-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruboty
|