lita-onewheel-images 0.1.1 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7938f22b4fe8040623bd471a976602ff6ac51688
4
- data.tar.gz: 727e4a036705e7ac1e0780bf7cfa7efb1226a789
3
+ metadata.gz: a76b6fcfa5b5becfae3a57e6b9cbbb1b138fa6ba
4
+ data.tar.gz: 2d0d7c7c4d4e03d2c4f57c4ba8f80683d702436d
5
5
  SHA512:
6
- metadata.gz: c56502c8f5cf27892c132d121724227e9fb281ebe8692f854247f1e8df3e9ea7a4dd0dc846a244e04477799a7b1421afe0c7f8e445cc5c90390d976b9c0dd6c4
7
- data.tar.gz: 3b3a8fda591a5543442116dc82049de06474fa2626da78a83c58ff3486774055d4979c1b7b4b3eea619cb23b5c40a64d9615aeb44e9eac15ab84685dbad945e9
6
+ metadata.gz: 409de8ceec3b5f75808506d79331f52157082f2c35a5fdfed3f8a888937e9e537db6782b0956b935e36c8aaf63159292839a12056b9bae6371fc84acb5e87e3c
7
+ data.tar.gz: 20b28fac78f297e6f3175b48ec2871a293c438511955045422f519ff8559e3ded1621f0583a16e6f65c8f3523aff3674fd6d13de099ae4c91ffa71a4251e110b
@@ -8,6 +8,7 @@ module Lita
8
8
  config :safe_search, required: false, default: 'medium'
9
9
 
10
10
  route /^image\s+(.*)$/, :image, command: true
11
+ route /^giphy\s+(.*)$/, :giphy, command: true
11
12
 
12
13
  def image(response)
13
14
  query = response.matches[0][0]
@@ -15,6 +16,20 @@ module Lita
15
16
  response.reply result['items'][0]['link']
16
17
  end
17
18
 
19
+ def giphy(response)
20
+ query = 'giphy ' + response.matches[0][0]
21
+ result = ::OnewheelGoogle::search(query, config.custom_search_engine_id, config.google_api_key, config.safe_search, image = true)
22
+
23
+ if result
24
+ result['items'].each do |r|
25
+ if r['mime'] == 'image/gif'
26
+ response.reply r['link']
27
+ break
28
+ end
29
+ end
30
+ end
31
+ end
32
+
18
33
  Lita.register_handler(self)
19
34
  end
20
35
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = 'lita-onewheel-images'
3
- spec.version = '0.1.1'
3
+ spec.version = '0.2.0'
4
4
  spec.authors = ['Andrew Kreps']
5
5
  spec.email = ['andrew.kreps@gmail.com']
6
6
  spec.description = 'An implementation of Google Custom Search Engine for image searches in chat.'
@@ -0,0 +1,243 @@
1
+ {
2
+ "kind": "customsearch#search",
3
+ "url": {
4
+ "type": "application/json",
5
+ "template": "https://www.googleapis.com/customsearch/v1?q={searchTerms}&num={count?}&start={startIndex?}&lr={language?}&safe={safe?}&cx={cx?}&cref={cref?}&sort={sort?}&filter={filter?}&gl={gl?}&cr={cr?}&googlehost={googleHost?}&c2coff={disableCnTwTranslation?}&hq={hq?}&hl={hl?}&siteSearch={siteSearch?}&siteSearchFilter={siteSearchFilter?}&exactTerms={exactTerms?}&excludeTerms={excludeTerms?}&linkSite={linkSite?}&orTerms={orTerms?}&relatedSite={relatedSite?}&dateRestrict={dateRestrict?}&lowRange={lowRange?}&highRange={highRange?}&searchType={searchType}&fileType={fileType?}&rights={rights?}&imgSize={imgSize?}&imgType={imgType?}&imgColorType={imgColorType?}&imgDominantColor={imgDominantColor?}&alt=json"
6
+ },
7
+ "queries": {
8
+ "request": [
9
+ {
10
+ "title": "Google Custom Search - giphy boop",
11
+ "totalResults": "983000",
12
+ "searchTerms": "giphy boop",
13
+ "count": 10,
14
+ "startIndex": 1,
15
+ "inputEncoding": "utf8",
16
+ "outputEncoding": "utf8",
17
+ "safe": "medium",
18
+ "cx": "016450909327860943906:3a3e35xbkzu",
19
+ "searchType": "image"
20
+ }
21
+ ],
22
+ "nextPage": [
23
+ {
24
+ "title": "Google Custom Search - giphy boop",
25
+ "totalResults": "983000",
26
+ "searchTerms": "giphy boop",
27
+ "count": 10,
28
+ "startIndex": 11,
29
+ "inputEncoding": "utf8",
30
+ "outputEncoding": "utf8",
31
+ "safe": "medium",
32
+ "cx": "016450909327860943906:3a3e35xbkzu",
33
+ "searchType": "image"
34
+ }
35
+ ]
36
+ },
37
+ "context": {
38
+ "title": "Google"
39
+ },
40
+ "searchInformation": {
41
+ "searchTime": 0.257185,
42
+ "formattedSearchTime": "0.26",
43
+ "totalResults": "983000",
44
+ "formattedTotalResults": "983,000"
45
+ },
46
+ "items": [
47
+ {
48
+ "kind": "customsearch#result",
49
+ "title": "Boop GIF - Find & Share on GIPHY",
50
+ "htmlTitle": "<b>Boop</b> GIF - Find &amp; Share on <b>GIPHY</b>",
51
+ "link": "https://media.giphy.com/media/lcvjDNIJ8CS88/giphy.gif",
52
+ "displayLink": "giphy.com",
53
+ "snippet": "Download",
54
+ "htmlSnippet": "Download",
55
+ "mime": "image/gif",
56
+ "fileFormat": "Image Document",
57
+ "image": {
58
+ "contextLink": "http://giphy.com/gifs/boop-cat-dog-lcvjDNIJ8CS88",
59
+ "height": 221,
60
+ "width": 327,
61
+ "byteSize": 456668,
62
+ "thumbnailLink": "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSW5ZuGyYPjT02SxK0eo74oO8oe-ZjyZ4akCbdjelvYwpMOy9D7aiYycQ",
63
+ "thumbnailHeight": 80,
64
+ "thumbnailWidth": 118
65
+ }
66
+ },
67
+ {
68
+ "kind": "customsearch#result",
69
+ "title": "Boop GIFs - Find & Share on GIPHY",
70
+ "htmlTitle": "<b>Boop</b> GIFs - Find &amp; Share on <b>GIPHY</b>",
71
+ "link": "https://media0.giphy.com/media/13eFBWrZEnJTGM/200_s.gif",
72
+ "displayLink": "giphy.com",
73
+ "snippet": "cat animals dolphin boop",
74
+ "htmlSnippet": "cat animals dolphin <b>boop</b>",
75
+ "mime": "image/gif",
76
+ "fileFormat": "Image Document",
77
+ "image": {
78
+ "contextLink": "http://giphy.com/search/boop",
79
+ "height": 200,
80
+ "width": 267,
81
+ "byteSize": 41044,
82
+ "thumbnailLink": "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcTQ-VJTyGJre8jiTRNXUd-XYBr3BVQK9N8xhrY3lALE9Ndev3Dtg5ZdwA",
83
+ "thumbnailHeight": 85,
84
+ "thumbnailWidth": 113
85
+ }
86
+ },
87
+ {
88
+ "kind": "customsearch#result",
89
+ "title": "Boop GIFs - Find & Share on GIPHY",
90
+ "htmlTitle": "<b>Boop</b> GIFs - Find &amp; Share on <b>GIPHY</b>",
91
+ "link": "https://media.giphy.com/media/Mf4NqZAknusBq/giphy-facebook_s.jpg",
92
+ "displayLink": "giphy.com",
93
+ "snippet": "cheezburger cat boop",
94
+ "htmlSnippet": "cheezburger cat <b>boop</b>",
95
+ "mime": "image/jpeg",
96
+ "image": {
97
+ "contextLink": "http://giphy.com/search/boop",
98
+ "height": 270,
99
+ "width": 480,
100
+ "byteSize": 69091,
101
+ "thumbnailLink": "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcRSLVvaau7zPfCgyNWJ3cQzd4tcbxwqB1w6Pn4Voqtn-5gx9EIww6-HXQE",
102
+ "thumbnailHeight": 73,
103
+ "thumbnailWidth": 129
104
+ }
105
+ },
106
+ {
107
+ "kind": "customsearch#result",
108
+ "title": "Boop GIFs - Find & Share on GIPHY",
109
+ "htmlTitle": "<b>Boop</b> GIFs - Find &amp; Share on <b>GIPHY</b>",
110
+ "link": "https://media1.giphy.com/media/34SJjVcQuih1K/200_s.gif",
111
+ "displayLink": "giphy.com",
112
+ "snippet": "archer boop affectionate nose",
113
+ "htmlSnippet": "archer <b>boop</b> affectionate nose",
114
+ "mime": "image/gif",
115
+ "fileFormat": "Image Document",
116
+ "image": {
117
+ "contextLink": "http://giphy.com/search/boop",
118
+ "height": 200,
119
+ "width": 355,
120
+ "byteSize": 42424,
121
+ "thumbnailLink": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ-MJrWoGpSfRP-DSrN94Wi36qfEPn6pQZlyo1DMau6luE1I79Ou74aUg",
122
+ "thumbnailHeight": 68,
123
+ "thumbnailWidth": 121
124
+ }
125
+ },
126
+ {
127
+ "kind": "customsearch#result",
128
+ "title": "Boop Gifs Find Share On Giphy - toublanc.info",
129
+ "htmlTitle": "<b>Boop</b> Gifs Find Share On <b>Giphy</b> - toublanc.info",
130
+ "link": "https://media.giphy.com/media/10MSCF1viNV7zy/giphy-facebook_s.jpg",
131
+ "displayLink": "www.toublanc.info",
132
+ "snippet": "Boop Gifs Find Share On Giphy",
133
+ "htmlSnippet": "<b>Boop</b> Gifs Find Share On <b>Giphy</b>",
134
+ "mime": "image/jpeg",
135
+ "image": {
136
+ "contextLink": "http://www.toublanc.info/boop/boop-gifs-find-share-on-giphy",
137
+ "height": 270,
138
+ "width": 480,
139
+ "byteSize": 25260,
140
+ "thumbnailLink": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRtgNJp-NZsZiq9vrEG-sEs83CTau7AAWZlr25mzU__7Q_zp9FoJiJCodZB",
141
+ "thumbnailHeight": 73,
142
+ "thumbnailWidth": 129
143
+ }
144
+ },
145
+ {
146
+ "kind": "customsearch#result",
147
+ "title": "Kitty Boop Gifs Find Share On Giphy - toublanc.info",
148
+ "htmlTitle": "Kitty <b>Boop</b> Gifs Find Share On <b>Giphy</b> - toublanc.info",
149
+ "link": "https://media2.giphy.com/media/XkRVZy6zREE92/200_s.gif",
150
+ "displayLink": "www.toublanc.info",
151
+ "snippet": "Find Share On Giphy : Boop",
152
+ "htmlSnippet": "Find Share On <b>Giphy</b> : <b>Boop</b>",
153
+ "mime": "image/gif",
154
+ "fileFormat": "Image Document",
155
+ "image": {
156
+ "contextLink": "http://www.toublanc.info/kitty/kitty-boop-gifs-find-share-on-giphy",
157
+ "height": 200,
158
+ "width": 355,
159
+ "byteSize": 47765,
160
+ "thumbnailLink": "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcTqwyjfUsEinEoDi-f_5-DxDe7Ab3JI0e1JGVNQ8fwdJIefWLYSQ9aWs7Q",
161
+ "thumbnailHeight": 68,
162
+ "thumbnailWidth": 121
163
+ }
164
+ },
165
+ {
166
+ "kind": "customsearch#result",
167
+ "title": "Nose Boops Gifs Find Share On Giphy - toublanc.info",
168
+ "htmlTitle": "Nose Boops Gifs Find Share On <b>Giphy</b> - toublanc.info",
169
+ "link": "https://media.giphy.com/media/3o85xHdmOjqVj4Wp9u/giphy-facebook_s.jpg",
170
+ "displayLink": "www.toublanc.info",
171
+ "snippet": "Find Share On Giphy : Boop",
172
+ "htmlSnippet": "Find Share On <b>Giphy</b> : <b>Boop</b>",
173
+ "mime": "image/jpeg",
174
+ "image": {
175
+ "contextLink": "http://www.toublanc.info/nose/nose-boops-gifs-find-share-on-giphy",
176
+ "height": 270,
177
+ "width": 480,
178
+ "byteSize": 27159,
179
+ "thumbnailLink": "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQxOsIZlXWN52BPrIRhAyHZ-6lJSFI5C_6d2-PciURlFVzrSZc-ra8DGAFn",
180
+ "thumbnailHeight": 73,
181
+ "thumbnailWidth": 129
182
+ }
183
+ },
184
+ {
185
+ "kind": "customsearch#result",
186
+ "title": "via GIPHY | Gif | Pinterest | Betty Boop, Gifs and Black And White",
187
+ "htmlTitle": "via <b>GIPHY</b> | Gif | Pinterest | Betty <b>Boop</b>, Gifs and Black And White",
188
+ "link": "https://s-media-cache-ak0.pinimg.com/736x/28/87/30/28873052e78c32db5f29d3f117adefd5.jpg",
189
+ "displayLink": "www.pinterest.com",
190
+ "snippet": "via GIPHY",
191
+ "htmlSnippet": "via <b>GIPHY</b>",
192
+ "mime": "image/jpeg",
193
+ "image": {
194
+ "contextLink": "https://www.pinterest.com/pin/175921929172738300/",
195
+ "height": 240,
196
+ "width": 320,
197
+ "byteSize": 19572,
198
+ "thumbnailLink": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTNWZgIoUYpj3PlrV586GRK9dk_llCgpc_eL3GucYE2YZ_dbxp4b9-5ARM",
199
+ "thumbnailHeight": 89,
200
+ "thumbnailWidth": 118
201
+ }
202
+ },
203
+ {
204
+ "kind": "customsearch#result",
205
+ "title": "Kitty Boop Gifs Find Share On Giphy - toublanc.info",
206
+ "htmlTitle": "Kitty <b>Boop</b> Gifs Find Share On <b>Giphy</b> - toublanc.info",
207
+ "link": "https://media.giphy.com/media/beO6G4MleCWVW/giphy-facebook_s.jpg",
208
+ "displayLink": "www.toublanc.info",
209
+ "snippet": "Find Share On Giphy : Boop",
210
+ "htmlSnippet": "Find Share On <b>Giphy</b> : <b>Boop</b>",
211
+ "mime": "image/jpeg",
212
+ "image": {
213
+ "contextLink": "http://www.toublanc.info/kitty/kitty-boop-gifs-find-share-on-giphy",
214
+ "height": 270,
215
+ "width": 480,
216
+ "byteSize": 82398,
217
+ "thumbnailLink": "https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcTWd_V_Zush_3p0UHFS5A1jMGNNKI5ZIOogzqylBRhOayZX7RVd1rxKii1B",
218
+ "thumbnailHeight": 73,
219
+ "thumbnailWidth": 129
220
+ }
221
+ },
222
+ {
223
+ "kind": "customsearch#result",
224
+ "title": "Boop GIF - Find & Share on GIPHY",
225
+ "htmlTitle": "<b>Boop</b> GIF - Find &amp; Share on <b>GIPHY</b>",
226
+ "link": "https://media.giphy.com/media/ogIiGCBFL6PGE/giphy.gif",
227
+ "displayLink": "giphy.com",
228
+ "snippet": "Download",
229
+ "htmlSnippet": "Download",
230
+ "mime": "image/gif",
231
+ "fileFormat": "Image Document",
232
+ "image": {
233
+ "contextLink": "http://giphy.com/gifs/boop-snoot-ogIiGCBFL6PGE",
234
+ "height": 350,
235
+ "width": 350,
236
+ "byteSize": 2073426,
237
+ "thumbnailLink": "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcT3oZIL0CV35gpLDrRYbWL7gNOvH0TIMEfgjSUj3O2LNinJ_OYL1psExTc",
238
+ "thumbnailHeight": 120,
239
+ "thumbnailWidth": 120
240
+ }
241
+ }
242
+ ]
243
+ }
@@ -1,12 +1,14 @@
1
1
  require 'spec_helper'
2
2
  require 'onewheel-google'
3
3
 
4
+ def mock_it_up(file)
5
+ mock_result_json = File.open("spec/fixtures/#{file}.json").read
6
+ allow(OnewheelGoogle).to receive(:search).and_return(JSON.parse mock_result_json)
7
+ end
8
+
4
9
  describe Lita::Handlers::OnewheelImages, lita_handler: true do
5
10
 
6
11
  before(:each) do
7
- mock_result_json = File.open('spec/fixtures/mock_result.json').read
8
- allow(OnewheelGoogle).to receive(:search).and_return(JSON.parse mock_result_json)
9
-
10
12
  registry.configure do |config|
11
13
  config.handlers.onewheel_images.custom_search_engine_id = ''
12
14
  config.handlers.onewheel_images.google_api_key = ''
@@ -14,9 +16,18 @@ describe Lita::Handlers::OnewheelImages, lita_handler: true do
14
16
  end
15
17
 
16
18
  it { is_expected.to route_command('image something') }
19
+ it { is_expected.to route_command('giphy something') }
17
20
 
18
21
  it 'does neat imagey things' do
22
+ mock_it_up('mock_result')
23
+
19
24
  send_command 'image yo'
20
25
  expect(replies.last).to eq('https://s-media-cache-ak0.pinimg.com/736x/4a/43/a4/4a43a4b6569cf8a197b6c9217de3f412.jpg')
21
26
  end
27
+
28
+ it 'does neat gif-y things' do
29
+ mock_it_up('giphy_result')
30
+ send_command 'giphy boop'
31
+ expect(replies.last).to eq('https://media.giphy.com/media/lcvjDNIJ8CS88/giphy.gif')
32
+ end
22
33
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-onewheel-images
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kreps
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-09 00:00:00.000000000 Z
11
+ date: 2016-06-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lita
@@ -139,6 +139,7 @@ files:
139
139
  - lib/lita-onewheel-images.rb
140
140
  - lib/lita/handlers/onewheel_images.rb
141
141
  - lita-onewheel-images.gemspec
142
+ - spec/fixtures/giphy_result.json
142
143
  - spec/fixtures/mock_result.json
143
144
  - spec/lita/handlers/onewheel_images_spec.rb
144
145
  - spec/spec_helper.rb
@@ -168,6 +169,7 @@ signing_key:
168
169
  specification_version: 4
169
170
  summary: CSE Details to follow
170
171
  test_files:
172
+ - spec/fixtures/giphy_result.json
171
173
  - spec/fixtures/mock_result.json
172
174
  - spec/lita/handlers/onewheel_images_spec.rb
173
175
  - spec/spec_helper.rb