noahru 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 34a1c26941d0a97a9ba767f69b1989d4af0bd5ab
4
+ data.tar.gz: 1e94543b91d29318982331c184a10114f6e689ba
5
+ SHA512:
6
+ metadata.gz: 8be361f0d13e007ddc191e7c7715cba0aaca88df287f9d2e4713a7a366342785b58dd9c38539a90f2085d70945b964d8efa49b4eb2c243e0fda673795b2e8a7d
7
+ data.tar.gz: ce73fa387eb3417c9bd68777f9331d65c4e1a8c0d9be754af628def7b140d5f692777cd6486b079d95e9a7f12a3ad8830f4f7934d819885f246f8e51c69d5073
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/.project ADDED
@@ -0,0 +1,17 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <projectDescription>
3
+ <name>noahru</name>
4
+ <comment></comment>
5
+ <projects>
6
+ </projects>
7
+ <buildSpec>
8
+ <buildCommand>
9
+ <name>org.eclipse.dltk.core.scriptbuilder</name>
10
+ <arguments>
11
+ </arguments>
12
+ </buildCommand>
13
+ </buildSpec>
14
+ <natures>
15
+ <nature>org.eclipse.dltk.ruby.core.nature</nature>
16
+ </natures>
17
+ </projectDescription>
data/.travis.yml ADDED
@@ -0,0 +1,3 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in noahru.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,67 @@
1
+ # Noahru
2
+
3
+ Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/noahru`. To experiment with that code, run `bin/console` for an interactive prompt.
4
+
5
+ さらすてぃAPIのクライアントライブラリです。
6
+ たった2行で姉妹と会話することができます。
7
+ apiについての説明は[さらすてぃ姉妹のAPI](http://flum.pw/sarasty/api.php)
8
+ 公式サイトは[さらすてぃ姉妹のサイト](http://flum.pw/sarasty/)
9
+
10
+ 質問等ありましたらTwitter:[@flum_](https://twitter.com/flum_)までお願いします。
11
+
12
+
13
+ ## Installation
14
+
15
+ Add this line to your application's Gemfile:
16
+
17
+ ```ruby
18
+ gem 'noahru'
19
+ ```
20
+
21
+ And then execute:
22
+
23
+ $ bundle
24
+
25
+ Or install it yourself as:
26
+
27
+ $ gem install noahru
28
+
29
+ ## Usage
30
+
31
+ requireしてから
32
+
33
+ ```
34
+ dialogue = Noahru::Dialogue.new(api_key)
35
+ puts dialogue.create_dialogue "たおの事どう思う?" #=>その内ヤバイ罪犯しそう
36
+ ```
37
+
38
+ たったこれだけで会話することができます。
39
+ 詳しいパラメータ等は、さらすてぃ姉妹のサイトを参照して
40
+ ```
41
+ dialogue.configure config = {
42
+ :sister => "noah",
43
+ :user_id => "flum_",
44
+ :mode => "markov",
45
+ }
46
+ ```
47
+ の様な感じでセットしてください。
48
+
49
+ ##Supported APIs
50
+ ###/apis/dialogue
51
+ ###/apis/command
52
+ ###/apis/get_talk
53
+ ###/apis/get_user_recent
54
+
55
+ ## Development
56
+
57
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment.
58
+
59
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release` to create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
60
+
61
+ ## Contributing
62
+
63
+ 1. Fork it ( https://github.com/[my-github-username]/noahru/fork )
64
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
65
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
66
+ 4. Push to the branch (`git push origin my-new-feature`)
67
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "noahru"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
data/bin/setup ADDED
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+
5
+ bundle install
6
+
7
+ # Do any other automated setup that you need to do here
data/example/noahru.rb ADDED
@@ -0,0 +1,54 @@
1
+ # Coding: UTF-8
2
+ lib = File.expand_path('../../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'noahru'
5
+
6
+ api_key = ""
7
+
8
+ ###Noahruの使用例
9
+ ####詳しい説明は https://github.com/flum1025/noahru
10
+ ####apiについての説明は http://flum.pw/sarasty/api.php
11
+ ####公式サイトは http://flum.pw/sarasty/
12
+
13
+ ###Copyright c @flum_ 2015
14
+ ###Twitter:@flum https://twitter.com/flum_
15
+ ###WEBサイト http://flum.pw/
16
+
17
+ ###dialogue
18
+ dialogue = Noahru::Dialogue.new(api_key)
19
+ dialogue.configure config = {
20
+ :sister => "sarasty_noah",
21
+ :user_id => "flum_",
22
+ :mode => "markov",
23
+ }
24
+ puts dialogue.create_dialogue "たおの事どう思う?" #=>その内ヤバイ罪犯しそう
25
+ puts dialogue.get_current_data
26
+ ###ここまで
27
+
28
+ ###command
29
+ command = Noahru::Command.new(api_key)
30
+ command.configure config = {
31
+ :sister => "sarasty_noah",
32
+ :user_id => "flum_",
33
+ }
34
+ puts command.send_command "learn"
35
+ puts command.get_current_data
36
+ ###ここまで
37
+
38
+ ###get_talk
39
+ get_talk = Noahru::Get_talk.new(api_key)
40
+ get_talk.configure config = {
41
+ :context => "ABCDEFGH",
42
+ }
43
+ puts get_talk.get_talk
44
+ puts get_talk.get_current_data
45
+ ###ここまで
46
+
47
+ ###get_user_recent
48
+ get_user_recent = Noahru::Get_user_recent.new(api_key)
49
+ get_user_recent.configure config = {
50
+ :user_id => "flum_",
51
+ }
52
+ puts get_user_recent.get_user_recent
53
+ puts get_user_recent.get_current_data
54
+ ###ここまで
@@ -0,0 +1,16 @@
1
+ module Noahru
2
+ class NoahruError < Exception; end
3
+
4
+ class Client
5
+ attr_accessor :api_key, :base_url
6
+
7
+ def initialize(api_key)
8
+ self.api_key = api_key
9
+ self.base_url = 'http://api.sarasty.flum.pw'
10
+ end
11
+
12
+ def get_api_key
13
+ return self.api_key
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,39 @@
1
+ module Noahru
2
+ class Command
3
+ attr_accessor :sister, :user_id
4
+
5
+ def initialize(api_key)
6
+ @client = Client.new(api_key)
7
+ end
8
+
9
+ def configure(options = {})
10
+ options.each do |key, value|
11
+ instance_variable_set("@#{key}", value)
12
+ end
13
+ end
14
+
15
+ def get_current_data
16
+ return data = {
17
+ :sister => self.sister,
18
+ :user_id => self.user_id,
19
+ }
20
+ end
21
+
22
+ def build_url(talk)
23
+ base_url = "#{@client.base_url}/apis/command?api_key=#{@client.get_api_key}"
24
+ base_url << "&sister=#{self.sister}" unless self.sister.nil?
25
+ base_url << "&user_id=#{self.user_id}" unless self.user_id.nil?
26
+ base_url << "&command=#{talk}"
27
+ return URI.escape(base_url)
28
+ end
29
+
30
+ def send_command talk
31
+ response = open(build_url(talk))
32
+ result = JSON.parse(response.read)
33
+ raise NoahruError, result['error']['message'] unless result['error'].nil?
34
+ self.user_id = result['user_id']
35
+ self.sister = result['sister']
36
+ return result['response']
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,48 @@
1
+ require 'open-uri'
2
+ require 'json'
3
+
4
+ module Noahru
5
+ class Dialogue
6
+ attr_accessor :sister, :user_id, :mode, :context
7
+
8
+ def initialize(api_key)
9
+ @client = Client.new(api_key)
10
+ end
11
+
12
+ def configure(options = {})
13
+ options.each do |key, value|
14
+ instance_variable_set("@#{key}", value)
15
+ end
16
+ end
17
+
18
+ def get_current_data
19
+ return data = {
20
+ :sister => self.sister,
21
+ :user_id => self.user_id,
22
+ :mode => self.mode,
23
+ :context => self.context,
24
+ }
25
+ end
26
+
27
+ def build_url(talk)
28
+ base_url = "#{@client.base_url}/apis/dialogue?api_key=#{@client.get_api_key}"
29
+ base_url << "&sister=#{self.sister}" unless self.sister.nil?
30
+ base_url << "&user_id=#{self.user_id}" unless self.user_id.nil?
31
+ base_url << "&mode=#{self.mode}" unless self.mode.nil?
32
+ base_url << "&context=#{self.context}" unless self.context.nil?
33
+ base_url << "&utt=#{talk}" unless talk.nil?
34
+ return URI.escape(base_url)
35
+ end
36
+
37
+ def create_dialogue talk
38
+ response = open(build_url(talk))
39
+ result = JSON.parse(response.read)
40
+ raise NoahruError, result['error']['message'] unless result['error'].nil?
41
+ self.context = result['context']
42
+ self.mode = result['mode']
43
+ self.user_id = result['user_id']
44
+ self.sister = result['sister']
45
+ return result['utt']
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,34 @@
1
+ module Noahru
2
+ class Get_talk
3
+ attr_accessor :context
4
+
5
+ def initialize(api_key)
6
+ @client = Client.new(api_key)
7
+ end
8
+
9
+ def configure(options = {})
10
+ options.each do |key, value|
11
+ instance_variable_set("@#{key}", value)
12
+ end
13
+ end
14
+
15
+ def get_current_data
16
+ return data = {
17
+ :context => self.context,
18
+ }
19
+ end
20
+
21
+ def build_url
22
+ base_url = "#{@client.base_url}/apis/get_talk?api_key=#{@client.get_api_key}"
23
+ base_url << "&context=#{self.context}" unless self.context.nil?
24
+ return URI.escape(base_url)
25
+ end
26
+
27
+ def get_talk
28
+ response = open(build_url)
29
+ result = JSON.parse(response.read)
30
+ raise NoahruError, result['error']['message'] unless result['error'].nil?
31
+ return result
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,35 @@
1
+ module Noahru
2
+ class Get_user_recent
3
+ attr_accessor :user_id
4
+
5
+ def initialize(api_key)
6
+ @client = Client.new(api_key)
7
+ end
8
+
9
+ def configure(options = {})
10
+ options.each do |key, value|
11
+ instance_variable_set("@#{key}", value)
12
+ end
13
+ end
14
+
15
+ def get_current_data
16
+ return data = {
17
+ :user_id => self.user_id,
18
+ }
19
+ end
20
+
21
+ def build_url
22
+ base_url = "#{@client.base_url}/apis/get_user_recent?api_key=#{@client.get_api_key}"
23
+ base_url << "&user_id=#{self.user_id}" unless self.user_id.nil?
24
+ return URI.escape(base_url)
25
+ end
26
+
27
+ def get_user_recent
28
+ response = open(build_url)
29
+ result = JSON.parse(response.read)
30
+ raise NoahruError, result['error']['message'] unless result['error'].nil?
31
+ return result
32
+ end
33
+
34
+ end
35
+ end
@@ -0,0 +1,3 @@
1
+ module Noahru
2
+ VERSION = "0.1.0"
3
+ end
data/lib/noahru.rb ADDED
@@ -0,0 +1,6 @@
1
+ require "noahru/version"
2
+ require "noahru/client"
3
+ require "noahru/command"
4
+ require "noahru/dialogue"
5
+ require "noahru/get_talk"
6
+ require "noahru/get_user_recent"
data/noahru.gemspec ADDED
@@ -0,0 +1,24 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'noahru/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "noahru"
8
+ spec.version = Noahru::VERSION
9
+ spec.authors = ["flum1025"]
10
+ spec.email = ["flum.1025@gmail.com"]
11
+
12
+ spec.summary = %q{Sarasty sister API Library}
13
+ spec.description = spec.summary
14
+ spec.homepage = "https://github.com/flum1025/Noahru"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
+ spec.bindir = "exe"
18
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.9"
22
+ spec.add_development_dependency "rake", "~> 10.0"
23
+ spec.add_dependency 'json'
24
+ end
metadata ADDED
@@ -0,0 +1,102 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: noahru
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - flum1025
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2016-03-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.9'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.9'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: json
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: Sarasty sister API Library
56
+ email:
57
+ - flum.1025@gmail.com
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - .gitignore
63
+ - .project
64
+ - .travis.yml
65
+ - Gemfile
66
+ - README.md
67
+ - Rakefile
68
+ - bin/console
69
+ - bin/setup
70
+ - example/noahru.rb
71
+ - lib/noahru.rb
72
+ - lib/noahru/client.rb
73
+ - lib/noahru/command.rb
74
+ - lib/noahru/dialogue.rb
75
+ - lib/noahru/get_talk.rb
76
+ - lib/noahru/get_user_recent.rb
77
+ - lib/noahru/version.rb
78
+ - noahru.gemspec
79
+ homepage: https://github.com/flum1025/Noahru
80
+ licenses: []
81
+ metadata: {}
82
+ post_install_message:
83
+ rdoc_options: []
84
+ require_paths:
85
+ - lib
86
+ required_ruby_version: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - '>='
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ required_rubygems_version: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - '>='
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ requirements: []
97
+ rubyforge_project:
98
+ rubygems_version: 2.5.2
99
+ signing_key:
100
+ specification_version: 4
101
+ summary: Sarasty sister API Library
102
+ test_files: []