lita-google-images 0.0.2 → 1.0.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.
- 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
|