lita-google-images 0.0.2 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +6 -2
- data/lib/lita/handlers/google_images.rb +12 -17
- data/lita-google-images.gemspec +2 -4
- data/spec/lita/handlers/google_images_spec.rb +16 -16
- data/spec/spec_helper.rb +1 -1
- metadata +4 -33
- data/CHANGELOG.md +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4fac06aeba1ac09047a0c7307451dc796ea991eb
|
4
|
+
data.tar.gz: 98f0683b9b18b2586c0309bf6f085522d1112848
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a898432e90044e6129411b7fcb79ccc1f36c78cd73ab8a4085d43793e4fee0755d8d84ac4e013804ae0085f43ab5251bedb445e7fe99e7a5f57229b7b661bcfc
|
7
|
+
data.tar.gz: 65eec2f6975e994aac9e9b71efb8b576e9da7f00cca265efb052faab5308aa38d6e02b908f3e3d3676e89def03ed2a3538ed53ac8066186c44daf9693c38f429
|
data/README.md
CHANGED
@@ -16,11 +16,15 @@ gem "lita-google-images"
|
|
16
16
|
|
17
17
|
## Configuration
|
18
18
|
|
19
|
-
|
19
|
+
### Optional attributes
|
20
|
+
|
21
|
+
* `safe_search` (String, Symbol) - The safe search setting to use when querying for images. Possible values are `:active`, `:moderate`, and `:off`. Default: `:active`.
|
22
|
+
|
23
|
+
### Example
|
20
24
|
|
21
25
|
```
|
22
26
|
Lita.configure do |config|
|
23
|
-
config.handlers.google_images.safe_search =
|
27
|
+
config.handlers.google_images.safe_search = :off
|
24
28
|
end
|
25
29
|
```
|
26
30
|
|
@@ -1,27 +1,22 @@
|
|
1
1
|
require "lita"
|
2
2
|
|
3
|
-
require "multi_json"
|
4
|
-
require "faraday"
|
5
|
-
|
6
3
|
module Lita
|
7
4
|
module Handlers
|
8
5
|
class GoogleImages < Handler
|
9
|
-
def self.help
|
10
|
-
name = Lita.config.robot.mention_name || Lita.config.robot.name
|
11
|
-
|
12
|
-
{
|
13
|
-
"#{name}: image QUERY" => "Displays a random image from Google Images matching the query."
|
14
|
-
}
|
15
|
-
end
|
16
|
-
|
17
6
|
URL = "https://ajax.googleapis.com/ajax/services/search/images"
|
18
7
|
|
19
|
-
route(/(?:image|img)(?:\s+me)? (.+)/,
|
8
|
+
route(/(?:image|img)(?:\s+me)? (.+)/, :fetch, command: true, help: {
|
9
|
+
"image QUERY" => "Displays a random image from Google Images matching the query."
|
10
|
+
})
|
11
|
+
|
12
|
+
def self.default_config(handler_config)
|
13
|
+
handler_config.safe_search = :active
|
14
|
+
end
|
20
15
|
|
21
|
-
def fetch(
|
22
|
-
query = matches[0][0]
|
16
|
+
def fetch(response)
|
17
|
+
query = response.matches[0][0]
|
23
18
|
|
24
|
-
|
19
|
+
http_response = http.get(
|
25
20
|
URL,
|
26
21
|
v: "1.0",
|
27
22
|
q: query,
|
@@ -29,11 +24,11 @@ module Lita
|
|
29
24
|
rsz: 8
|
30
25
|
)
|
31
26
|
|
32
|
-
data = MultiJson.load(
|
27
|
+
data = MultiJson.load(http_response.body)
|
33
28
|
|
34
29
|
if data["responseStatus"] == 200
|
35
30
|
choice = data["responseData"]["results"].sample
|
36
|
-
reply "#{choice["unescapedUrl"]}#.png"
|
31
|
+
response.reply "#{choice["unescapedUrl"]}#.png"
|
37
32
|
else
|
38
33
|
reason = data["responseDetails"] || "unknown error"
|
39
34
|
Lita.logger.warn(
|
data/lita-google-images.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "lita-google-images"
|
3
|
-
spec.version = "0.0
|
3
|
+
spec.version = "1.0.0"
|
4
4
|
spec.authors = ["Jimmy Cuadra"]
|
5
5
|
spec.email = ["jimmy@jimmycuadra.com"]
|
6
6
|
spec.description = %q{A Lita handler for fetching images from Google.}
|
@@ -13,9 +13,7 @@ Gem::Specification.new do |spec|
|
|
13
13
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
14
14
|
spec.require_paths = ["lib"]
|
15
15
|
|
16
|
-
spec.add_runtime_dependency "lita", "~>
|
17
|
-
spec.add_runtime_dependency "multi_json", "~> 1.7"
|
18
|
-
spec.add_runtime_dependency "faraday", "~> 0.8"
|
16
|
+
spec.add_runtime_dependency "lita", "~> 2.0"
|
19
17
|
|
20
18
|
spec.add_development_dependency "bundler", "~> 1.3"
|
21
19
|
spec.add_development_dependency "rake"
|
@@ -1,21 +1,19 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
|
-
describe Lita::Handlers::GoogleImages,
|
4
|
-
it {
|
5
|
-
it {
|
6
|
-
it {
|
7
|
-
it {
|
8
|
-
|
9
|
-
describe ".help" do
|
10
|
-
it "returns a hash of command help" do
|
11
|
-
expect(described_class.help).to be_a(Hash)
|
12
|
-
end
|
13
|
-
end
|
3
|
+
describe Lita::Handlers::GoogleImages, lita_handler: true do
|
4
|
+
it { routes_command("image me foo").to(:fetch) }
|
5
|
+
it { routes_command("image foo").to(:fetch) }
|
6
|
+
it { routes_command("img foo").to(:fetch) }
|
7
|
+
it { routes_command("img me foo").to(:fetch) }
|
14
8
|
|
15
9
|
describe "#foo" do
|
16
10
|
let(:response) { double("Faraday::Response") }
|
17
11
|
|
18
|
-
before
|
12
|
+
before do
|
13
|
+
allow_any_instance_of(
|
14
|
+
Faraday::Connection
|
15
|
+
).to receive(:get).and_return(response)
|
16
|
+
end
|
19
17
|
|
20
18
|
it "replies with a matching image URL on success" do
|
21
19
|
allow(response).to receive(:body).and_return(<<-JSON.chomp
|
@@ -31,8 +29,10 @@ describe Lita::Handlers::GoogleImages, lita: true do
|
|
31
29
|
}
|
32
30
|
JSON
|
33
31
|
)
|
34
|
-
|
35
|
-
|
32
|
+
send_command("image carl")
|
33
|
+
expect(replies.last).to eq(
|
34
|
+
"http://www.example.com/path/to/an/image.jpg#.png"
|
35
|
+
)
|
36
36
|
end
|
37
37
|
|
38
38
|
it "logs a warning on failure" do
|
@@ -43,9 +43,9 @@ JSON
|
|
43
43
|
}
|
44
44
|
JSON
|
45
45
|
)
|
46
|
-
expect_no_reply
|
47
46
|
expect(Lita.logger).to receive(:warn).with(/google fail/)
|
48
|
-
|
47
|
+
send_command("image carl")
|
48
|
+
expect(replies).to be_empty
|
49
49
|
end
|
50
50
|
end
|
51
51
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lita-google-images
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jimmy Cuadra
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-06
|
11
|
+
date: 2013-07-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lita
|
@@ -16,42 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: multi_json
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ~>
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '1.7'
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ~>
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '1.7'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: faraday
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ~>
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0.8'
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ~>
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0.8'
|
26
|
+
version: '2.0'
|
55
27
|
- !ruby/object:Gem::Dependency
|
56
28
|
name: bundler
|
57
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -131,7 +103,6 @@ extra_rdoc_files: []
|
|
131
103
|
files:
|
132
104
|
- .gitignore
|
133
105
|
- .travis.yml
|
134
|
-
- CHANGELOG.md
|
135
106
|
- Gemfile
|
136
107
|
- README.md
|
137
108
|
- Rakefile
|