cleverbotrb 0.1.1 → 0.2.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.
Files changed (3) hide show
  1. checksums.yaml +5 -5
  2. data/lib/cleverbotrb.rb +17 -62
  3. metadata +4 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 613ac43bd29eeb0a07e3620aa7df1c27ebd046ae
4
- data.tar.gz: baa5f8ffc1b88f129232de56f81ee9e35726f453
2
+ SHA256:
3
+ metadata.gz: 11e78f3d7f86b4fcbd4e3ccae587e84db481354e04aab2a5104980f29387e408
4
+ data.tar.gz: 339ea67b219a7edd54b4b7a004e7837b4d59138214a1229f63ea1933e8879903
5
5
  SHA512:
6
- metadata.gz: e6f90466bad5a97b29456aeb5e69c20d187dfa2225c53a4ee72a7b043fd6be8e2f2fdb9e4adb4f790f09e4ad3915a0e8fa4c6342543e5d5dd7e8bcd5c016987a
7
- data.tar.gz: ba169b25a5e2495cbb3b116c005bae29b7016b464d4b1140ed994b643713b7f4664d165ff5d8259bc6a9c51029025f213be50f90481b21926ceeb86b6608f31a
6
+ metadata.gz: 0fc85ec98d8d6d4e6818022b6fd30957ee4c7223c27a0167fed85fd681c637519b134344debc3095425abd1587fe73121fd4871cce99b0936474f39173b092b2
7
+ data.tar.gz: fbe4dcb4302aeadeab377fd5b74481be6a7d2c85a7924ad48d8357773e5db69ec9916f4a80a420778fbbd8bcb661e119ca94fd93ce411076bd611556dee2266a
@@ -21,7 +21,7 @@
21
21
 
22
22
  require 'uri'
23
23
  require 'net/http'
24
- require 'digest'
24
+ require 'json'
25
25
 
26
26
  ##
27
27
  # This class represent cleverbot session
@@ -30,34 +30,16 @@ require 'digest'
30
30
  class Cleverbot
31
31
 
32
32
  HOST = "www.cleverbot.com"
33
- ENDPOINT = "/webservicemin?uc=777"
34
-
35
- PARAMS = {
36
- 'stimulus' => '', 'start' => 'y', 'sessionid' => '',
37
- 'vText8' => '', 'vText7' => '', 'vText6' => '', 'vText5' => '',
38
- 'vText4' => '', 'vText3' => '', 'vText2' => '',
39
- 'icognoid' => 'wsf', 'icognocheck' => '', 'fno' => '0',
40
- 'prevref' => '', 'emotionaloutput' => '', 'asbotname' => '',
41
- 'ttsvoice' => '', 'typing' => '', 'lineref' => '',
42
- 'sub' => 'Say', 'islearning' => '1', 'cleanslate' => 'false'
43
- }
44
-
45
- RESPONSE_KEY = [
46
- 'message', 'sessionid', 'logurl', 'vText8',
47
- 'vText7', 'vText6', 'vText5', 'vText4',
48
- 'vText3', 'vText2', 'prevref', '',
49
- 'emotionalhistory', 'ttsLocMP3', 'ttsLocTXT', 'ttsLocTXT3',
50
- 'ttsText', 'lineref', 'lineURL', 'linePOST',
51
- 'lineChoices', 'lineChoicesAbbrev', 'typingData', 'divert'
52
- ]
33
+ ENDPOINT = "/getreply?"
53
34
 
54
35
  ##
55
36
  # Create a new session
56
37
  def initialize (api_key="DEFAULT")
57
- @cookies = {}
58
- @params = PARAMS
59
- @endpoint = ENDPOINT + "&botapi=#{api_key}"
60
- prepare
38
+ @params = {
39
+ "key" => api_key,
40
+ "wrapper" => "cleverbotrb"
41
+ }
42
+ @endpoint = ENDPOINT
61
43
  end
62
44
 
63
45
  ##
@@ -66,52 +48,25 @@ class Cleverbot
66
48
  # @param message [String]
67
49
  # @return [String] the answer statement
68
50
  def send(message)
69
- body = @params
70
- body["stimulus"] = message
71
- body["icognocheck"] = digest(URI.encode_www_form(body)[9...35])
72
- body_str = URI.encode_www_form(body) #params_encode(body)
51
+ url_arg = @params
52
+ url_arg["input"] = message
53
+ url_arg_str = URI.encode_www_form(url_arg)
73
54
 
74
55
  headers = {
75
- 'Content-Type' => 'application/x-www-form-urlencoded',
76
- 'Content-Length' => body_str.size.to_s,
77
- 'Cache-Control' => 'no-cache',
78
- 'Cookie' => cookies_encode(@cookies)
56
+ 'User-Agent' => 'cleverbotrb https://github.com/d0p1s4m4/cleverbotrb',
79
57
  }
80
58
 
81
59
  req = Net::HTTP.new(HOST, 80)
82
- resp = req.post(@endpoint, body_str, headers)
60
+ resp = req.get(@endpoint + url_arg_str, headers)
83
61
  if resp.code != "200"
84
62
  return nil
85
63
  end
86
- response = resp.body.split("\r")
87
- save_data(response)
88
- return response[0]
89
- end
90
-
91
- private
92
-
93
- def prepare
94
- req = Net::HTTP.new(HOST, 80)
95
- resp = req.get('/')
96
- raw_cookies = resp.response['set-cookie']
97
- if not raw_cookies.nil?
98
- raw_cookies.scan(/(\w+)=([\w|\/]+)/) do |key, value|
99
- @cookies[key] = value
100
- end
101
- end
102
- end
103
-
104
- def digest(data)
105
- Digest::MD5.hexdigest data
106
- end
107
-
108
- def save_data(response)
109
- RESPONSE_KEY.each_with_index do |key, index|
110
- @params[key] = response[index]
111
- end
64
+ response = JSON.parse(resp.body)
65
+ @params['cs'] = response['cs']
66
+ return response['output']
112
67
  end
113
68
 
114
- def cookies_encode(cookies)
115
- cookies.to_a.map { |cookie| "#{cookie[0]}=#{cookie[1]}" }.join(";")
69
+ def reset
70
+ params.delete('cs')
116
71
  end
117
72
  end
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cleverbotrb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - d0p1
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-10 00:00:00.000000000 Z
11
+ date: 2019-10-29 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: A simple cleverbot gem
13
+ description: Cleverbot API wrapper
14
14
  email: d0p1@yahoo.com
15
15
  executables: []
16
16
  extensions: []
@@ -36,8 +36,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
36
36
  - !ruby/object:Gem::Version
37
37
  version: '0'
38
38
  requirements: []
39
- rubyforge_project:
40
- rubygems_version: 2.4.5.2
39
+ rubygems_version: 3.0.3
41
40
  signing_key:
42
41
  specification_version: 4
43
42
  summary: Cleverbot