clever-api 0.0.1
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 +7 -0
- data/lib/clever-api.rb +89 -0
- metadata +58 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8417babc21a9737b56bd723899d23be797dcd1c6
|
4
|
+
data.tar.gz: 4da164b94ec76fa6e251b18f1b4552e5a77ab6e5
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6a21f58a305a5849145732e718e16bcfb94a4bc613e94ba7111ec345370f7fe7089ecd23952e2dc73c47ac5919a9795ca312a083be251d043caf0c4b77f60ab8
|
7
|
+
data.tar.gz: e322a8da2b1b96f2b0b039d06c4a53c3ed66032564f8cb106037a62bd543a8afd11d1bfc3ae749b2e7a926831def5c884e1e58a7bca11fe0c1952b4176d79b3f
|
data/lib/clever-api.rb
ADDED
@@ -0,0 +1,89 @@
|
|
1
|
+
require 'rest-client'
|
2
|
+
require 'digest/md5'
|
3
|
+
|
4
|
+
class CleverBot
|
5
|
+
def initialize
|
6
|
+
@service_uri = 'http://www.cleverbot.com/webservicemin'
|
7
|
+
@post_params = {
|
8
|
+
start: 'y',
|
9
|
+
icognoid: 'wsf',
|
10
|
+
fno: '0',
|
11
|
+
sub: 'Say',
|
12
|
+
islearning: '1',
|
13
|
+
cleanslate: 'false'
|
14
|
+
}
|
15
|
+
@backlog = []
|
16
|
+
end
|
17
|
+
|
18
|
+
def think thought
|
19
|
+
@post_params['stimulus'] = thought
|
20
|
+
response_data = make_request
|
21
|
+
save_post response_data
|
22
|
+
response = CleverBotResponse.new response_data
|
23
|
+
@backlog.push response
|
24
|
+
response.answer
|
25
|
+
end
|
26
|
+
|
27
|
+
def backlog
|
28
|
+
@backlog.map(&:dup)
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
def build_query
|
33
|
+
current_query = @post_params.to_querystring
|
34
|
+
@post_params['icognocheck'] = Digest::MD5.hexdigest current_query[9..34]
|
35
|
+
@post_params.to_querystring
|
36
|
+
end
|
37
|
+
|
38
|
+
def make_request
|
39
|
+
query_string = build_query
|
40
|
+
result = RestClient.post @service_uri, query_string
|
41
|
+
return result.body.split "\r"
|
42
|
+
end
|
43
|
+
|
44
|
+
def save_post response
|
45
|
+
{
|
46
|
+
sessionid: 1,
|
47
|
+
logurl: 2,
|
48
|
+
vText8: 3,
|
49
|
+
vText7: 4,
|
50
|
+
vText6: 5,
|
51
|
+
vText5: 6,
|
52
|
+
vText4: 7,
|
53
|
+
vText3: 8,
|
54
|
+
vText2: 9,
|
55
|
+
prevref: 10,
|
56
|
+
emotionalhistory: 12,
|
57
|
+
ttsLocMP3: 13,
|
58
|
+
ttsLocTXT: 14,
|
59
|
+
ttsLocTXT3: 15,
|
60
|
+
ttsText: 16,
|
61
|
+
lineRef: 17,
|
62
|
+
lineURL: 18,
|
63
|
+
linePOST: 19,
|
64
|
+
lineChoices: 20,
|
65
|
+
lineChoicesAbbrev: 21,
|
66
|
+
typingData: 22,
|
67
|
+
divert: 23
|
68
|
+
}.each_pair do |key, value|
|
69
|
+
@post_params[key] = response[value]
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
class CleverBotResponse
|
75
|
+
attr_reader :question, :answer
|
76
|
+
|
77
|
+
def initialize response_data
|
78
|
+
@question = response_data[8]
|
79
|
+
@answer = response_data[16]
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
|
84
|
+
class Hash
|
85
|
+
def to_querystring
|
86
|
+
self.map { |pair| "#{URI::encode pair.first.to_s}=#{URI::encode pair.last.to_s}" }
|
87
|
+
.join '&'
|
88
|
+
end
|
89
|
+
end
|
metadata
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: clever-api
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Francis Hinson
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-02-21 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rest-client
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
description: CleverBot API for Ruby
|
28
|
+
email: francis@chesscademy.com
|
29
|
+
executables: []
|
30
|
+
extensions: []
|
31
|
+
extra_rdoc_files: []
|
32
|
+
files:
|
33
|
+
- lib/clever-api.rb
|
34
|
+
homepage: https://github.com/fhinson/clever-api
|
35
|
+
licenses:
|
36
|
+
- MIT
|
37
|
+
metadata: {}
|
38
|
+
post_install_message:
|
39
|
+
rdoc_options: []
|
40
|
+
require_paths:
|
41
|
+
- lib
|
42
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '0'
|
47
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
48
|
+
requirements:
|
49
|
+
- - ">="
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: '0'
|
52
|
+
requirements: []
|
53
|
+
rubyforge_project:
|
54
|
+
rubygems_version: 2.4.5
|
55
|
+
signing_key:
|
56
|
+
specification_version: 4
|
57
|
+
summary: CleverBot API for Ruby
|
58
|
+
test_files: []
|