lita-hashtag 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 996a89b7c3ab87863f179b919cb8421a1da24e3f
4
- data.tar.gz: 0aeba2b201c49c7c3a7ea1056c8dd5274ff99690
3
+ metadata.gz: 41c386c0cddede38a39a826d8ce75df1cbda0c65
4
+ data.tar.gz: 3e51493b50558ec69043d92243f833d7dba1b178
5
5
  SHA512:
6
- metadata.gz: 7ba17fd5aa0794283536cbe9b2229d9edcdcd9659863b7207a79238a61f934432218668305c750c47388ad54362e889677035dfb0ce6040c9811a760cc676fc4
7
- data.tar.gz: 9d8dd45a7d723af11e8787e479579a8f8124f499e80d9ad927b2e6aad4e9a44cc06081bcc4b957cee1efd7e1a21828f5d3d6623c18398878a168b293b2b8a898
6
+ metadata.gz: c86fd2b4749303444ac1ef0739e65b4c7fd7eee20b12ee0ebd60e595dd24bcf31fd1f538b0756bb6b096ff9eb1067b1b5f38bab463509fa0920478f3546daaea
7
+ data.tar.gz: 2138c0a1eb520d96c74519b73ef46e5b9b226f5c4564d250471b0111271bdd5a16877513039638c5713a3b204fc4ecc540c170017fd9db121195e8cc7eeb51ed
data/README.md CHANGED
@@ -21,12 +21,25 @@ gem "lita-hashtag"
21
21
  ### Optional
22
22
 
23
23
  * `config.handlers.hashtag.safe_search` - (String, Symbol) - The safe search
24
- setting to use when querying for images. Possible values are `:active`,
25
- `:moderate`, and `:off`. **Default:** `:active`.
24
+ setting to use when querying for images. Possible values are `:high`,
25
+ `:medium`, and `:off`. **Default:** `:medium`.
26
+ * `config.handlers.hashtag.google_cse_id` - String - search engine id (see
27
+ below)
28
+ * `config.handlers.hashtag.google_cse_key` - String - api key (see below)
26
29
  * `config.handlers.hashtag.giphy_api_key` - String - Your Giphy API key. You can
27
30
  either email the devs for a personal API key, or you can use the default
28
31
  public beta key-- dc6zaTOxFJmzC. **Default:** `dc6zaTOxFJmzC`
29
32
 
33
+ ## Important note about google custom search
34
+
35
+ Since google has shutdown their free image search API, you'll need to create an
36
+ google custom search engine (https://cse.google.com/) allows 100 search per day
37
+ free and fill in the `google_cse_key` with the 'search engine ID' (can be found
38
+ under 'Basic'->'Details'->'Search engine ID'). Then you need to go create an
39
+ api key from Google Developers Console (instructions here:
40
+ https://developers.google.com/custom-search/json-api/v1/introduction) and fill
41
+ that into the `google_cse_id`.
42
+
30
43
  ## Usage
31
44
 
32
45
  ```
@@ -1,18 +1,21 @@
1
1
  module Lita
2
2
  module Handlers
3
3
  class Hashtag < Handler
4
- URL = "https://ajax.googleapis.com/ajax/services/search/images"
4
+ URL = "https://www.googleapis.com/customsearch/v1"
5
5
  GIF_URL = "http://api.giphy.com/v1/gifs/search"
6
- VALID_SAFE_VALUES = %w(active moderate off)
6
+ VALID_SAFE_VALUES = %w(high medium off)
7
7
 
8
- config :safe_search, types: [String, Symbol], default: :active do
8
+ config :safe_search, types: [String, Symbol], default: :medium do
9
9
  validate do |value|
10
10
  unless VALID_SAFE_VALUES.include?(value.to_s.strip)
11
- "valid values are :active, :moderate, or :off"
11
+ "valid values are :high, :medium, or :off"
12
12
  end
13
13
  end
14
14
  end
15
15
 
16
+ config :google_cse_id, type: String, required: true
17
+ config :google_cse_key, type: String, required: true
18
+
16
19
  config :giphy_api_key, type: String, default: 'dc6zaTOxFJmzC'
17
20
 
18
21
  route(/^#(.+)/, :fetch, command: false, help: {
@@ -24,31 +27,36 @@ module Lita
24
27
  query = response.matches[0][0]
25
28
 
26
29
  if query[0] == '#'
27
- response.reply get_gif(query)
30
+ response.reply get_gif(query[1..-1])
28
31
  else
29
32
  http_response = http.get(
30
33
  URL,
31
34
  v: "1.0",
35
+ searchType: 'image',
32
36
  q: query,
33
37
  safe: config.safe_search,
34
- rsz: 8
38
+ fields: 'items(link)',
39
+ rsz: 8,
40
+ cx: config.google_cse_id,
41
+ key: config.google_cse_key
35
42
  )
36
43
 
37
44
  data = MultiJson.load(http_response.body)
38
45
 
39
- if data["responseStatus"] == 200
40
- choice = data["responseData"]["results"].sample
46
+ if http_response.status == 200
47
+ choice = data["items"].sample if data["items"]
41
48
  if choice
42
- response.reply ensure_extension(choice["unescapedUrl"])
49
+ response.reply ensure_extension(choice["link"])
43
50
  else
44
- response.reply %{No images found for "#{query}".}
51
+ response.reply %{What the hell is "#{query}"? Try something else.}
45
52
  end
46
53
  else
47
- reason = data["responseDetails"] || "unknown error"
54
+ reason = data["error"]["message"] || "unknown error"
48
55
  Lita.logger.warn(
49
56
  "Couldn't get image from Google: #{reason}"
50
57
  )
51
58
  end
59
+
52
60
  end
53
61
  end
54
62
 
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "lita-hashtag"
3
- spec.version = "0.1.0"
3
+ spec.version = "0.2.0"
4
4
  spec.authors = ["Richard Li"]
5
5
  spec.email = ["evilcat@wisewolfsolutions.com"]
6
6
  spec.description = %q{Let lita bot respond to #'s}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-hashtag
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Li
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-07 00:00:00.000000000 Z
11
+ date: 2016-02-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lita
@@ -126,3 +126,4 @@ summary: 'Let lita bot respond to #''s'
126
126
  test_files:
127
127
  - spec/lita/handlers/hashtag_spec.rb
128
128
  - spec/spec_helper.rb
129
+ has_rdoc: