lita-ai 0.1.2 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 642a16fd0ac7030a2e0ab8831b5bcc164eeedcf3
4
- data.tar.gz: ec993bbb173d63c1a9f0118f986c5657867c00df
3
+ metadata.gz: ff58dd9f5d803c36b9e59dc242c8ec009025d3bd
4
+ data.tar.gz: 17f3591b0e677ebac0861f2272a2170228ccafca
5
5
  SHA512:
6
- metadata.gz: d369068a9bbba64adcf700c4c0261fd2387e2c18236b32878b99fb6b20e7f50826dff7699c869b234d9964a3fcf7b1ab412fe0b2d652ad8717d0138665f69481
7
- data.tar.gz: 9db09bd3ff3e5b419ba005ca177bfd74f7d5bbfcb0699c453f909162ba932b834e959c96e35f8ac38b2eaefc7381e3c346f900e0e83137802f3e1098e2f26820
6
+ metadata.gz: 9072ae25063ed1d8858d08978cfad79e79a5c735dea4bf54e3544300a9604533139a71ede5b9b883ec03fd6a82334ff027573b4a98775d90be46208513c0267f
7
+ data.tar.gz: d9152b38bf1fc3880e8c0addf92ca0f630c75cb503bdf3f7de228d789d19912e9dd80fb60bdcbaa1268d4661aa4dc1d20db36e927ff83ec16266a1bb4b7681f7
data/README.md CHANGED
@@ -20,11 +20,17 @@ gem 'lita-ai'
20
20
 
21
21
  ## Configuration
22
22
 
23
- None
23
+ Sign up at [cleverbot.io](http://cleverbot.io) and enter your api user and key into lita_config.rb.
24
+
25
+ ```
26
+ config.handlers.ai.api_user = '<redacted>'
27
+ config.handlers.ai.api_key = '<redacted>'
28
+ ```
29
+
24
30
 
25
31
  ## Usage
26
32
 
27
- Just send a message mentioning your robot by it's name or alias, either directly as a command or anywhere else in the message.
33
+ Just send a message mentioning your robot by it's name or alias, either directly as a command or anywhere else in the message.
28
34
 
29
35
  ```
30
36
  > lita what's up?
@@ -34,7 +40,7 @@ Just send a message mentioning your robot by it's name or alias, either directly
34
40
  #=> Sure, when and where?
35
41
  ```
36
42
 
37
- Your robots name will be stripped from the message we send to Cleverbot.. we don't want to confuse it anymore than it already is.
43
+ Your robots name will be stripped from the message we send to Cleverbot.. we don't want to confuse it anymore than it already is.
38
44
 
39
45
  ## License
40
46
 
@@ -1,5 +1,5 @@
1
1
  require "lita"
2
- require "clever-api"
2
+ require "cleverbot"
3
3
  require "htmlentities"
4
4
 
5
5
  Lita.load_locales Dir[File.expand_path(
@@ -2,9 +2,19 @@ module Lita
2
2
  module Handlers
3
3
  class Ai < Handler
4
4
  on :unhandled_message, :chat
5
+ config :api_key, type: String
6
+ config :api_user, type: String
5
7
 
6
8
  def self.cleverbot
7
- @cleverbot ||= CleverBot.new
9
+ @cleverbot ||= Cleverbot.new(api_user, api_key)
10
+ end
11
+
12
+ def self.api_user
13
+ Lita.config.handlers.ai.api_user
14
+ end
15
+
16
+ def self.api_key
17
+ Lita.config.handlers.ai.api_key
8
18
  end
9
19
 
10
20
  def chat(payload)
@@ -21,7 +31,7 @@ module Lita
21
31
 
22
32
  def build_response(message)
23
33
  message = extract_aliases(message)
24
- reply = self.class.cleverbot.think(message.body)
34
+ reply = self.class.cleverbot.say(message.body)
25
35
  clean_response(reply.to_s) if reply
26
36
  end
27
37
 
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "lita-ai"
3
- spec.version = "0.1.2"
3
+ spec.version = "0.1.3"
4
4
  spec.authors = ["Tom Beynon"]
5
5
  spec.email = ["tom@tombeynon.co.uk"]
6
6
  spec.description = "Makes lita respond to unhandled messages using Cleverbot"
@@ -15,7 +15,7 @@ Gem::Specification.new do |spec|
15
15
  spec.require_paths = ["lib"]
16
16
 
17
17
  spec.add_runtime_dependency "lita", ">= 4.6"
18
- spec.add_runtime_dependency "clever-api", "~> 0.0.2"
18
+ spec.add_runtime_dependency "cleverbot_io", "~> 1.2.2"
19
19
  spec.add_runtime_dependency "htmlentities", "~> 4.3"
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.3"
@@ -1,10 +1,15 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe Lita::Handlers::Ai, lita_handler: true do
4
+ let(:cleverbot){ double(:cleverbot) }
5
+ before(:each) do
6
+ allow(subject.class).to receive(:cleverbot){ cleverbot }
7
+ end
8
+
4
9
  describe 'handling unhandled_message' do
5
10
  context 'unhandled directed at lita' do
6
11
  it 'uses cleverbot to reply' do
7
- allow(subject.class.cleverbot).to receive(:think){ 'Hello' }
12
+ allow(subject.class.cleverbot).to receive(:say){ 'Hello' }
8
13
  send_message('Hi lita')
9
14
  expect(replies.last).to eq('Hello')
10
15
  end
@@ -24,19 +29,19 @@ describe Lita::Handlers::Ai, lita_handler: true do
24
29
  let(:message){ double(:message, body: 'Hello', command?: true, source: source) }
25
30
 
26
31
  it 'strips out the robot name' do
27
- expect(subject.class.cleverbot).to receive(:think).with('Hello')
32
+ expect(subject.class.cleverbot).to receive(:say).with('Hello')
28
33
  subject.chat(message: message)
29
34
  end
30
35
 
31
36
  it 'strips out the robot aliases' do
32
37
  robot.alias = 'bender'
33
38
  allow(message).to receive(:body){ 'Hi bender' }
34
- expect(subject.class.cleverbot).to receive(:think).with('Hi')
39
+ expect(subject.class.cleverbot).to receive(:say).with('Hi')
35
40
  subject.chat(message: message)
36
41
  end
37
42
 
38
43
  it 'sends a message with cleverbot\'s response' do
39
- expect(subject.class.cleverbot).to receive(:think).with('Hello'){ 'Hi' }
44
+ expect(subject.class.cleverbot).to receive(:say).with('Hello'){ 'Hi' }
40
45
  expect(subject.robot).to receive(:send_message).with(source, 'Hi')
41
46
  subject.chat(message: message)
42
47
  end
@@ -45,14 +50,14 @@ describe Lita::Handlers::Ai, lita_handler: true do
45
50
 
46
51
  context 'unicode decoding' do
47
52
  let(:message){ double(:message, body: '中文', command?: true, source: source) }
48
- before { allow(described_class.cleverbot).to receive(:think).and_return("|56E0|4E3A|6211|4E0D|61C2...") }
53
+ before { allow(described_class.cleverbot).to receive(:say).and_return("|56E0|4E3A|6211|4E0D|61C2...") }
49
54
 
50
55
  it { expect(subject.chat(message: message)[0]).to eq "因为我不懂..." }
51
56
  end
52
57
 
53
58
  context 'HTML entity decoding' do
54
59
  let(:message){ double(:message, body: 'Foo &#xA9; bar &#x1D306;', command?: true, source: source) }
55
- before { allow(described_class.cleverbot).to receive(:think).and_return("Baz &#x2603; Bim &aring;") }
60
+ before { allow(described_class.cleverbot).to receive(:say).and_return("Baz &#x2603; Bim &aring;") }
56
61
 
57
62
  it { expect(subject.chat(message: message)[0]).to eq "Baz ☃ Bim å" }
58
63
  end
@@ -61,19 +66,19 @@ describe Lita::Handlers::Ai, lita_handler: true do
61
66
  let(:message){ double(:message, body: 'Hi lita', command?: false, source: source) }
62
67
 
63
68
  it 'strips out the robot name' do
64
- expect(subject.class.cleverbot).to receive(:think).with('Hi')
69
+ expect(subject.class.cleverbot).to receive(:say).with('Hi')
65
70
  subject.chat(message: message)
66
71
  end
67
72
 
68
73
  it 'strips out the robot aliases' do
69
74
  robot.alias = 'bender'
70
75
  allow(message).to receive(:body){ 'Hello bender' }
71
- expect(subject.class.cleverbot).to receive(:think).with('Hello')
76
+ expect(subject.class.cleverbot).to receive(:say).with('Hello')
72
77
  subject.chat(message: message)
73
78
  end
74
79
 
75
80
  it 'sends a message with cleverbot\'s response' do
76
- expect(subject.class.cleverbot).to receive(:think).with('Hi'){ 'Hello' }
81
+ expect(subject.class.cleverbot).to receive(:say).with('Hi'){ 'Hello' }
77
82
  expect(subject.robot).to receive(:send_message).with(source, 'Hello')
78
83
  subject.chat(message: message)
79
84
  end
@@ -83,7 +88,7 @@ describe Lita::Handlers::Ai, lita_handler: true do
83
88
  let(:message){ double(:message, body: 'Not talking to you', command?: false, source: source) }
84
89
 
85
90
  it 'Doesn\'t call cleverbot' do
86
- expect(subject.class.cleverbot).to_not receive(:think)
91
+ expect(subject.class.cleverbot).to_not receive(:say)
87
92
  subject.chat(message: message)
88
93
  end
89
94
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-ai
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Beynon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-28 00:00:00.000000000 Z
11
+ date: 2016-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lita
@@ -25,19 +25,19 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '4.6'
27
27
  - !ruby/object:Gem::Dependency
28
- name: clever-api
28
+ name: cleverbot_io
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.0.2
33
+ version: 1.2.2
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.0.2
40
+ version: 1.2.2
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: htmlentities
43
43
  requirement: !ruby/object:Gem::Requirement