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: []
         |