kamigo 0.19.0 → 0.20.0
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 +10 -2
- data/app/controllers/line_controller.rb +2 -19
- data/lib/kamigo.rb +2 -0
- data/lib/kamigo/event_parsers/line_event_parser.rb +2 -1
- data/lib/kamigo/request_handlers/line_request_handler.rb +32 -0
- data/lib/kamigo/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7378b8ac81d656a0279ae87d084410ff9ac89944054ad6f26a2571e94a3cf694
|
4
|
+
data.tar.gz: 3ca981698b7693e4ff20e3fd45bb38a47b60fa4b7fe20d57339997764609d286
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 505d6d3f8d32b016d0dbd72b3d35af48a065631a500d34575eff79fc1916f203395f6b7d60439ed9633b1c973ce840d1d02b9da7778c46719232ac8bf9e40ab4
|
7
|
+
data.tar.gz: 414c7828e10aea9c7c74a62b4c2dab36ab8e798c56f61bf2696c6ce51750e1e8083dd3d7d268ea38e855513f535a57a43a2ad4549cfc65d6a89d534cac4de4fc
|
data/README.md
CHANGED
@@ -18,6 +18,8 @@ cd kamigo_demo
|
|
18
18
|
# 安裝套件
|
19
19
|
bundle add kamigo
|
20
20
|
bundle add dotenv-rails
|
21
|
+
# 建立設定檔
|
22
|
+
rails g kamigo:install
|
21
23
|
# 新增 resource controller
|
22
24
|
rails g scaffold todo name desc
|
23
25
|
rails db:create
|
@@ -147,9 +149,15 @@ Kamigo 預設使用基本的語意理解模型,會將使用者輸入視為在
|
|
147
149
|
|
148
150
|
# 計畫
|
149
151
|
- 提供多種語意理解模型串接
|
152
|
+
- DialogFlow
|
153
|
+
- LUIS
|
150
154
|
- 網站使用者與聊天機器人使用者綁定
|
151
|
-
-
|
152
|
-
-
|
155
|
+
- Devise
|
156
|
+
- Log / 錯誤追蹤
|
157
|
+
- 支援其他平台
|
158
|
+
- Telegram
|
159
|
+
- Facebook Messenger
|
160
|
+
- Slack
|
153
161
|
|
154
162
|
## License
|
155
163
|
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
@@ -4,25 +4,8 @@ class LineController < ApplicationController
|
|
4
4
|
protect_from_forgery with: :null_session
|
5
5
|
|
6
6
|
def entry
|
7
|
-
|
8
|
-
|
9
|
-
events.each do |event|
|
10
|
-
output = process_event(event) || Kamigo.line_default_message
|
11
|
-
responser = Kamigo::EventResponsers::LineEventResponser.new
|
12
|
-
response = responser.response_event(event, output)
|
13
|
-
end
|
7
|
+
request_handler = Kamigo::RequestHandlers::LineRequestHandler.new(request, form_authenticity_token)
|
8
|
+
request_handler.handle
|
14
9
|
head :ok
|
15
10
|
end
|
16
|
-
|
17
|
-
private
|
18
|
-
|
19
|
-
def process_event(event)
|
20
|
-
Kamigo.line_event_processors.each do |processor|
|
21
|
-
processor.request = request
|
22
|
-
processor.form_authenticity_token = form_authenticity_token
|
23
|
-
output = processor.process(event)
|
24
|
-
return output if output.present?
|
25
|
-
end
|
26
|
-
nil
|
27
|
-
end
|
28
11
|
end
|
data/lib/kamigo.rb
CHANGED
@@ -8,6 +8,8 @@ require "kamigo/events/line_event"
|
|
8
8
|
require "kamigo/event_parsers/line_event_parser"
|
9
9
|
require "kamigo/event_responsers/line_event_responser"
|
10
10
|
require "kamigo/event_processors/rails_router_processor"
|
11
|
+
require "kamigo/request_handlers/line_request_handler"
|
12
|
+
|
11
13
|
module Kamigo
|
12
14
|
mattr_accessor :line_default_message
|
13
15
|
@@line_default_message = {
|
@@ -12,7 +12,8 @@ module Kamigo
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def parse(event)
|
15
|
-
|
15
|
+
event_hash = JSON.parse(event.to_json, symbolize_names: true)
|
16
|
+
payload = event_hash[:src] || event_hash
|
16
17
|
response = client.get_profile(payload[:source][:userId])
|
17
18
|
line_event = Kamigo::Events::LineEvent.new
|
18
19
|
line_event.payload = payload
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Kamigo
|
2
|
+
module RequestHandlers
|
3
|
+
class LineRequestHandler
|
4
|
+
def initialize(request, form_authenticity_token)
|
5
|
+
@request = request
|
6
|
+
@form_authenticity_token = form_authenticity_token
|
7
|
+
end
|
8
|
+
|
9
|
+
def handle
|
10
|
+
parser = EventParsers::LineEventParser.new
|
11
|
+
events = parser.parse_events(@request)
|
12
|
+
events.each do |event|
|
13
|
+
output = process_event(event) || Kamigo.line_default_message
|
14
|
+
responser = EventResponsers::LineEventResponser.new
|
15
|
+
response = responser.response_event(event, output)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def process_event(event)
|
22
|
+
Kamigo.line_event_processors.each do |processor|
|
23
|
+
processor.request = @request
|
24
|
+
processor.form_authenticity_token = @form_authenticity_token
|
25
|
+
output = processor.process(event)
|
26
|
+
return output if output.present?
|
27
|
+
end
|
28
|
+
nil
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/lib/kamigo/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kamigo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.20.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- etrex
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-03
|
11
|
+
date: 2021-04-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -125,6 +125,7 @@ files:
|
|
125
125
|
- lib/kamigo/events/basic_event.rb
|
126
126
|
- lib/kamigo/events/line_event.rb
|
127
127
|
- lib/kamigo/railtie.rb
|
128
|
+
- lib/kamigo/request_handlers/line_request_handler.rb
|
128
129
|
- lib/kamigo/version.rb
|
129
130
|
homepage: https://github.com/etrex/kamigo
|
130
131
|
licenses:
|