lita-onewheel-duckduckgo 0.0.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: 01535e1cbb8312c96c6a3e4c5859710ad28330b7
4
+ data.tar.gz: 00dfbc205fc831eb27458c5be33aedd59c3406e7
5
+ SHA512:
6
+ metadata.gz: 02aedf57221835c910c8e77aaef76f95bbcdc1a1fa8d601ad54290a0edcaf07330e52e6b7d8294dd8b432208510615d4b3ee1693462624846ad5aa3a585b78d1
7
+ data.tar.gz: 340740bbb8142d4cba620efb9ea593eade576c478848b24d0cff35c914fcd5846f14c27f89afc08e0b7e4a120d06286abbe340f5e95e7192125802492ca1f3a1
data/.gitignore ADDED
@@ -0,0 +1,20 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ .idea
19
+ lita_config.rb
20
+ bin
data/.travis.yml ADDED
@@ -0,0 +1,9 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.2.6
4
+ - 2.3.3
5
+ script: bundle exec rake
6
+ before_install:
7
+ - gem update --system
8
+ services:
9
+ - redis-server
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
data/README.rst ADDED
@@ -0,0 +1,20 @@
1
+ lita-onewheel-duckduckgo
2
+ --------------------
3
+
4
+ [![Build Status](https://travis-ci.org/onewheelskyward/lita-onewheel-duckduckgo.png?branch=master)](https://travis-ci.org/onewheelskyward/lita-onewheel-duckduckgo)
5
+ [![Coverage Status](https://coveralls.io/repos/onewheelskyward/lita-onewheel-duckduckgo/badge.png)](https://coveralls.io/r/onewheelskyward/lita-onewheel-duckduckgo)
6
+
7
+ Queries the Duck Duck Go Answers api for things.
8
+
9
+ Installation
10
+ ------------
11
+ Add lita-onewheel-duckduckgo to your Lita instance's Gemfile:
12
+
13
+ ``` ruby
14
+ gem "lita-onewheel-duckduckgo"
15
+ ```
16
+
17
+ Usage
18
+ -----
19
+
20
+ !duck go
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task default: :spec
@@ -0,0 +1,25 @@
1
+ require 'rest-client'
2
+
3
+ module Lita
4
+ module Handlers
5
+ class OnewheelDuckDuckGo < Handler
6
+ route /^duck\s+(.*)$/, :search, command: true
7
+
8
+ def search(response)
9
+ query = response.matches[0][0]
10
+ Lita.logger.debug "Querying for #{query}"
11
+ result = get_result(query)
12
+ Lita.logger.debug "Result: #{result}"
13
+ reply = "DuckDuckGo Result: #{result['Abstract'][0..250]}"
14
+ Lita.logger.debug "Reply: #{reply}"
15
+ response.reply reply
16
+ end
17
+
18
+ def get_result(query)
19
+ result = RestClient.get("http://api.duckduckgo.com/?q=#{query}&format=json")
20
+ end
21
+
22
+ Lita.register_handler(self)
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,3 @@
1
+ require 'lita'
2
+
3
+ require 'lita/handlers/onewheel_duckduckgo'
@@ -0,0 +1,26 @@
1
+ Gem::Specification.new do |spec|
2
+ spec.name = 'lita-onewheel-duckduckgo'
3
+ spec.version = '0.0.0'
4
+ spec.authors = ['Andrew Kreps']
5
+ spec.email = ['andrew.kreps@gmail.com']
6
+ spec.description = 'Lita handler for Duck Duck Go\'s answers engine.'
7
+ spec.summary = 'Duck Duck Goose'
8
+ spec.homepage = 'https://github.com/onewheelskyward/lita-onewheel-duckduckgo'
9
+ spec.license = 'MIT'
10
+ spec.metadata = { 'lita_plugin_type' => 'handler' }
11
+
12
+ spec.files = `git ls-files`.split($/)
13
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
14
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
15
+ spec.require_paths = ['lib']
16
+
17
+ spec.add_runtime_dependency 'lita', '~> 4'
18
+ spec.add_runtime_dependency 'rest-client', '~> 1'
19
+
20
+ spec.add_development_dependency 'bundler', '~> 1'
21
+ spec.add_development_dependency 'rake', '~> 10'
22
+ spec.add_development_dependency 'rack-test', '~> 0.6'
23
+ spec.add_development_dependency 'rspec', '~> 3'
24
+ spec.add_development_dependency 'simplecov', '~> 0.10'
25
+ spec.add_development_dependency 'coveralls', '~> 0.8'
26
+ end
@@ -0,0 +1,221 @@
1
+ {
2
+ "DefinitionSource": "",
3
+ "Heading": "DuckDuckGo",
4
+ "ImageWidth": 340,
5
+ "RelatedTopics": [
6
+ {
7
+ "Result": "<a href=\"https://duckduckgo.com/Names_Database\">Names Database</a> - The Names Database is a partially defunct social network, owned and operated by Classmates.com, a wholly owned subsidiary of United Online. The site does not appear to be significantly updated since 2008, and has many broken links and display issues.",
8
+ "Icon": {
9
+ "URL": "",
10
+ "Height": "",
11
+ "Width": ""
12
+ },
13
+ "FirstURL": "https://duckduckgo.com/Names_Database",
14
+ "Text": "Names Database - The Names Database is a partially defunct social network, owned and operated by Classmates.com, a wholly owned subsidiary of United Online. The site does not appear to be significantly updated since 2008, and has many broken links and display issues."
15
+ },
16
+ {
17
+ "Result": "<a href=\"https://duckduckgo.com/c/Companies_based_in_Chester_County%2C_Pennsylvania\">Companies based in Chester County, Pennsylvania</a>",
18
+ "Icon": {
19
+ "URL": "",
20
+ "Height": "",
21
+ "Width": ""
22
+ },
23
+ "FirstURL": "https://duckduckgo.com/c/Companies_based_in_Chester_County%2C_Pennsylvania",
24
+ "Text": "Companies based in Chester County, Pennsylvania"
25
+ },
26
+ {
27
+ "Result": "<a href=\"https://duckduckgo.com/c/Tor_hidden_services\">Tor hidden services</a>",
28
+ "Icon": {
29
+ "URL": "",
30
+ "Height": "",
31
+ "Width": ""
32
+ },
33
+ "FirstURL": "https://duckduckgo.com/c/Tor_hidden_services",
34
+ "Text": "Tor hidden services"
35
+ },
36
+ {
37
+ "Result": "<a href=\"https://duckduckgo.com/c/Internet_privacy_software\">Internet privacy software</a>",
38
+ "Icon": {
39
+ "URL": "",
40
+ "Height": "",
41
+ "Width": ""
42
+ },
43
+ "FirstURL": "https://duckduckgo.com/c/Internet_privacy_software",
44
+ "Text": "Internet privacy software"
45
+ },
46
+ {
47
+ "Result": "<a href=\"https://duckduckgo.com/c/Perl_software\">Perl software</a>",
48
+ "Icon": {
49
+ "URL": "",
50
+ "Height": "",
51
+ "Width": ""
52
+ },
53
+ "FirstURL": "https://duckduckgo.com/c/Perl_software",
54
+ "Text": "Perl software"
55
+ },
56
+ {
57
+ "Result": "<a href=\"https://duckduckgo.com/c/Proprietary_cross-platform_software\">Proprietary cross-platform software</a>",
58
+ "Icon": {
59
+ "URL": "",
60
+ "Height": "",
61
+ "Width": ""
62
+ },
63
+ "FirstURL": "https://duckduckgo.com/c/Proprietary_cross-platform_software",
64
+ "Text": "Proprietary cross-platform software"
65
+ },
66
+ {
67
+ "Result": "<a href=\"https://duckduckgo.com/c/Internet_search_engines\">Internet search engines</a>",
68
+ "Icon": {
69
+ "URL": "",
70
+ "Height": "",
71
+ "Width": ""
72
+ },
73
+ "FirstURL": "https://duckduckgo.com/c/Internet_search_engines",
74
+ "Text": "Internet search engines"
75
+ },
76
+ {
77
+ "Result": "<a href=\"https://duckduckgo.com/c/Android_(operating_system)_software\">Android (operating system) software</a>",
78
+ "Icon": {
79
+ "URL": "",
80
+ "Height": "",
81
+ "Width": ""
82
+ },
83
+ "FirstURL": "https://duckduckgo.com/c/Android_(operating_system)_software",
84
+ "Text": "Android (operating system) software"
85
+ }
86
+ ],
87
+ "Entity": "website",
88
+ "meta": {
89
+ "maintainer": {
90
+ "github": "duckduckgo"
91
+ },
92
+ "perl_module": "DDG::Fathead::Wikipedia",
93
+ "status": "live",
94
+ "production_state": "online",
95
+ "dev_date": null,
96
+ "js_callback_name": "wikipedia",
97
+ "signal_from": "wikipedia_fathead",
98
+ "live_date": null,
99
+ "src_id": 1,
100
+ "src_options": {
101
+ "skip_end": "0",
102
+ "skip_abstract": 0,
103
+ "skip_qr": "",
104
+ "language": "en",
105
+ "skip_icon": 0,
106
+ "skip_image_name": 0,
107
+ "directory": "",
108
+ "min_abstract_length": "20",
109
+ "skip_abstract_paren": 0,
110
+ "is_wikipedia": 1,
111
+ "source_skip": "",
112
+ "is_fanon": 0,
113
+ "is_mediawiki": 1,
114
+ "src_info": ""
115
+ },
116
+ "repo": "fathead",
117
+ "developer": [
118
+ {
119
+ "url": "http://www.duckduckhack.com",
120
+ "name": "DDG Team",
121
+ "type": "ddg"
122
+ }
123
+ ],
124
+ "tab": "About",
125
+ "producer": null,
126
+ "unsafe": 0,
127
+ "id": "wikipedia_fathead",
128
+ "dev_milestone": "live",
129
+ "topic": [
130
+ "productivity"
131
+ ],
132
+ "name": "Wikipedia",
133
+ "attribution": null,
134
+ "created_date": null,
135
+ "example_query": "nikola tesla",
136
+ "description": "Wikipedia",
137
+ "is_stackexchange": null,
138
+ "designer": null,
139
+ "src_domain": "en.wikipedia.org",
140
+ "src_name": "Wikipedia",
141
+ "blockgroup": null,
142
+ "src_url": null
143
+ },
144
+ "Type": "A",
145
+ "Redirect": "",
146
+ "DefinitionURL": "",
147
+ "AbstractURL": "https://en.wikipedia.org/wiki/DuckDuckGo",
148
+ "Definition": "",
149
+ "AbstractSource": "Wikipedia",
150
+ "Infobox": {
151
+ "content": [
152
+ {
153
+ "data_type": "string",
154
+ "sort_order": "1",
155
+ "value": "The search engine that doesn't track you.",
156
+ "label": "Slogan",
157
+ "wiki_order": 1
158
+ },
159
+ {
160
+ "data_type": "string",
161
+ "sort_order": "1",
162
+ "value": "Web search engine",
163
+ "label": "Type of site",
164
+ "wiki_order": 3
165
+ },
166
+ {
167
+ "data_type": "string",
168
+ "sort_order": "2",
169
+ "value": "DuckDuckGo, Inc.",
170
+ "label": "Owner",
171
+ "wiki_order": 7
172
+ },
173
+ {
174
+ "data_type": "string",
175
+ "sort_order": "3",
176
+ "value": "Gabriel Weinberg",
177
+ "label": "Created by",
178
+ "wiki_order": 8
179
+ },
180
+ {
181
+ "data_type": "string",
182
+ "sort_order": "3",
183
+ "value": "September 25, 2008",
184
+ "label": "Launched",
185
+ "wiki_order": 9
186
+ },
187
+ {
188
+ "data_type": "string",
189
+ "sort_order": "4",
190
+ "value": "560 (December 16, 2016)",
191
+ "label": "Alexa rank",
192
+ "wiki_order": 10
193
+ }
194
+ ],
195
+ "meta": [
196
+ {
197
+ "data_type": "string",
198
+ "value": "DuckDuckGo",
199
+ "label": "article_title"
200
+ },
201
+ {
202
+ "data_type": "string",
203
+ "value": "infobox website",
204
+ "label": "template_name"
205
+ },
206
+ {
207
+ "data_type": "string",
208
+ "value": "website",
209
+ "label": "formatting_rules"
210
+ }
211
+ ]
212
+ },
213
+ "Image": "https://duckduckgo.com/i/adad4e5c.png",
214
+ "ImageIsLogo": 1,
215
+ "Abstract": "DuckDuckGo is an Internet search engine that emphasizes protecting searchers' privacy and avoiding the filter bubble of personalized search results. DuckDuckGo distinguishes itself from other search engines by not profiling its users and by deliberately showing all users the same search results for a given search term. DuckDuckGo emphasizes getting information from the best sources rather than the most sources, generating its search results from key crowdsourced sites such as Wikipedia and from partnerships with other search engines like Yandex, Yahoo!, Bing, and Yummly.",
216
+ "AbstractText": "DuckDuckGo is an Internet search engine that emphasizes protecting searchers' privacy and avoiding the filter bubble of personalized search results. DuckDuckGo distinguishes itself from other search engines by not profiling its users and by deliberately showing all users the same search results for a given search term. DuckDuckGo emphasizes getting information from the best sources rather than the most sources, generating its search results from key crowdsourced sites such as Wikipedia and from partnerships with other search engines like Yandex, Yahoo!, Bing, and Yummly.",
217
+ "AnswerType": "",
218
+ "ImageHeight": 270,
219
+ "Answer": "",
220
+ "Results": []
221
+ }
@@ -0,0 +1,524 @@
1
+ {
2
+ "DefinitionSource": "",
3
+ "Heading": "Duck",
4
+ "ImageWidth": 0,
5
+ "RelatedTopics": [
6
+ {
7
+ "Result": "<a href=\"https://duckduckgo.com/Duck\">Duck</a> The common name for a large number of species in the waterfowl family Anatidae, which also...",
8
+ "Icon": {
9
+ "URL": "https://duckduckgo.com/i/764237a0.jpg",
10
+ "Height": "",
11
+ "Width": ""
12
+ },
13
+ "FirstURL": "https://duckduckgo.com/Duck",
14
+ "Text": "Duck The common name for a large number of species in the waterfowl family Anatidae, which also..."
15
+ },
16
+ {
17
+ "Result": "<a href=\"https://duckduckgo.com/Ducati\">Ducati</a>Ducati Motor Holding S.p.A. is an Italian company that designs and manufactures motorcycles.",
18
+ "Icon": {
19
+ "URL": "https://duckduckgo.com/i/8d3cf6a1.png",
20
+ "Height": "",
21
+ "Width": ""
22
+ },
23
+ "FirstURL": "https://duckduckgo.com/Ducati",
24
+ "Text": "Ducati Ducati Motor Holding S.p.A. is an Italian company that designs and manufactures motorcycles."
25
+ },
26
+ {
27
+ "Result": "<a href=\"https://duckduckgo.com/Anaheim_Ducks\">Anaheim Ducks</a>A professional ice hockey team based in Anaheim, California.",
28
+ "Icon": {
29
+ "URL": "https://duckduckgo.com/i/6c1af7b0.png",
30
+ "Height": "",
31
+ "Width": ""
32
+ },
33
+ "FirstURL": "https://duckduckgo.com/Anaheim_Ducks",
34
+ "Text": "Anaheim Ducks A professional ice hockey team based in Anaheim, California."
35
+ },
36
+ {
37
+ "Topics": [
38
+ {
39
+ "Result": "<a href=\"https://duckduckgo.com/Duck_(nickname)\">Duck (nickname)</a> As a nickname, Duck may refer to...",
40
+ "Icon": {
41
+ "URL": "",
42
+ "Height": "",
43
+ "Width": ""
44
+ },
45
+ "FirstURL": "https://duckduckgo.com/Duck_(nickname)",
46
+ "Text": "Duck (nickname) As a nickname, Duck may refer to..."
47
+ },
48
+ {
49
+ "Result": "<a href=\"https://duckduckgo.com/don_Manley\">Duck (crossword compiler)</a>A long-serving setter of crosswords in the UK. He has supplied puzzles for the Radio Times, The...",
50
+ "Icon": {
51
+ "URL": "",
52
+ "Height": "",
53
+ "Width": ""
54
+ },
55
+ "FirstURL": "https://duckduckgo.com/don_Manley",
56
+ "Text": "Duck (crossword compiler) A long-serving setter of crosswords in the UK. He has supplied puzzles for the Radio Times, The..."
57
+ }
58
+ ],
59
+ "Name": "People"
60
+ },
61
+ {
62
+ "Topics": [
63
+ {
64
+ "Result": "<a href=\"https://duckduckgo.com/Duck%2C_North_Carolina\">Duck, North Carolina</a>A town in Dare County, North Carolina, United States.",
65
+ "Icon": {
66
+ "URL": "https://duckduckgo.com/i/d2533ef3.png",
67
+ "Height": "",
68
+ "Width": ""
69
+ },
70
+ "FirstURL": "https://duckduckgo.com/Duck%2C_North_Carolina",
71
+ "Text": "Duck, North Carolina A town in Dare County, North Carolina, United States."
72
+ },
73
+ {
74
+ "Result": "<a href=\"https://duckduckgo.com/Duck%2C_West_Virginia\">Duck, West Virginia</a>An unincorporated community in Clay County, West Virginia, United States. Duck is northeast of Clay.",
75
+ "Icon": {
76
+ "URL": "",
77
+ "Height": "",
78
+ "Width": ""
79
+ },
80
+ "FirstURL": "https://duckduckgo.com/Duck%2C_West_Virginia",
81
+ "Text": "Duck, West Virginia An unincorporated community in Clay County, West Virginia, United States. Duck is northeast of Clay."
82
+ },
83
+ {
84
+ "Result": "<a href=\"https://duckduckgo.com/Monte_Creek\">Monte Creek</a>A rural locality on the South Thompson River east of Kamloops, British Columbia, Canada...",
85
+ "Icon": {
86
+ "URL": "",
87
+ "Height": "",
88
+ "Width": ""
89
+ },
90
+ "FirstURL": "https://duckduckgo.com/Monte_Creek",
91
+ "Text": "Monte Creek A rural locality on the South Thompson River east of Kamloops, British Columbia, Canada..."
92
+ }
93
+ ],
94
+ "Name": "Places"
95
+ },
96
+ {
97
+ "Topics": [
98
+ {
99
+ "Result": "<a href=\"https://duckduckgo.com/Duck_(bridge)\">Duck (bridge)</a>In the card game of contract bridge, to duck means to play low to a trick to which one has led...",
100
+ "Icon": {
101
+ "URL": "",
102
+ "Height": "",
103
+ "Width": ""
104
+ },
105
+ "FirstURL": "https://duckduckgo.com/Duck_(bridge)",
106
+ "Text": "Duck (bridge) In the card game of contract bridge, to duck means to play low to a trick to which one has led..."
107
+ },
108
+ {
109
+ "Result": "<a href=\"https://duckduckgo.com/Duck_(cricket)\">Duck (cricket)</a> A batsman's dismissal for a score of zero.",
110
+ "Icon": {
111
+ "URL": "",
112
+ "Height": "",
113
+ "Width": ""
114
+ },
115
+ "FirstURL": "https://duckduckgo.com/Duck_(cricket)",
116
+ "Text": "Duck (cricket) A batsman's dismissal for a score of zero."
117
+ },
118
+ {
119
+ "Result": "<a href=\"https://duckduckgo.com/Oregon_Ducks\">Oregon Ducks</a>The athletic teams that represent the University of Oregon, a public flagship research university...",
120
+ "Icon": {
121
+ "URL": "https://duckduckgo.com/i/631f5911.png",
122
+ "Height": "",
123
+ "Width": ""
124
+ },
125
+ "FirstURL": "https://duckduckgo.com/Oregon_Ducks",
126
+ "Text": "Oregon Ducks The athletic teams that represent the University of Oregon, a public flagship research university..."
127
+ },
128
+ {
129
+ "Result": "<a href=\"https://duckduckgo.com/The_Oregon_Duck\">The Oregon Duck</a>The mascot of the University of Oregon Ducks athletic program, based on Disney's Donald Duck...",
130
+ "Icon": {
131
+ "URL": "https://duckduckgo.com/i/7afe002d.jpg",
132
+ "Height": "",
133
+ "Width": ""
134
+ },
135
+ "FirstURL": "https://duckduckgo.com/The_Oregon_Duck",
136
+ "Text": "The Oregon Duck The mascot of the University of Oregon Ducks athletic program, based on Disney's Donald Duck..."
137
+ },
138
+ {
139
+ "Result": "<a href=\"https://duckduckgo.com/Long_Island_Ducks\">Long Island Ducks</a>An American professional baseball team based in Central Islip, New York.",
140
+ "Icon": {
141
+ "URL": "https://duckduckgo.com/i/5a6da0f5.png",
142
+ "Height": "",
143
+ "Width": ""
144
+ },
145
+ "FirstURL": "https://duckduckgo.com/Long_Island_Ducks",
146
+ "Text": "Long Island Ducks An American professional baseball team based in Central Islip, New York."
147
+ }
148
+ ],
149
+ "Name": "Sports and games"
150
+ },
151
+ {
152
+ "Topics": [
153
+ {
154
+ "Result": "<a href=\"https://duckduckgo.com/Duck_(Alice's_Adventures_in_Wonderland)\">Duck (Alice's Adventures in Wonderland)</a>A fictional character appearing in Chapters 2 and 3 of the book Alice's Adventures in Wonderland...",
155
+ "Icon": {
156
+ "URL": "https://duckduckgo.com/i/54c21270.png",
157
+ "Height": "",
158
+ "Width": ""
159
+ },
160
+ "FirstURL": "https://duckduckgo.com/Duck_(Alice's_Adventures_in_Wonderland)",
161
+ "Text": "Duck (Alice's Adventures in Wonderland) A fictional character appearing in Chapters 2 and 3 of the book Alice's Adventures in Wonderland..."
162
+ },
163
+ {
164
+ "Result": "<a href=\"https://duckduckgo.com/Duck_the_Great_Western_Engine\">Duck the Great Western Engine</a>A fictional steam engine from The Railway Series by the Rev.",
165
+ "Icon": {
166
+ "URL": "https://duckduckgo.com/i/cfb19f0a.jpg",
167
+ "Height": "",
168
+ "Width": ""
169
+ },
170
+ "FirstURL": "https://duckduckgo.com/Duck_the_Great_Western_Engine",
171
+ "Text": "Duck the Great Western Engine A fictional steam engine from The Railway Series by the Rev."
172
+ }
173
+ ],
174
+ "Name": "Fictional characters"
175
+ },
176
+ {
177
+ "Topics": [
178
+ {
179
+ "Result": "<a href=\"https://duckduckgo.com/Duck_(film)\">Duck (film)</a>A 2005 American drama film by director-writer-producer Nic Bettauer. It stars Philip Baker Hall.",
180
+ "Icon": {
181
+ "URL": "https://duckduckgo.com/i/7046167d.jpg",
182
+ "Height": "",
183
+ "Width": ""
184
+ },
185
+ "FirstURL": "https://duckduckgo.com/Duck_(film)",
186
+ "Text": "Duck (film) A 2005 American drama film by director-writer-producer Nic Bettauer. It stars Philip Baker Hall."
187
+ },
188
+ {
189
+ "Result": "<a href=\"https://duckduckgo.com/Duck!_The_Carbine_High_Massacre\">Duck! The Carbine High Massacre</a> Duck! The Carbine High Massacre is a 1999 American black comedy crime film about a fictional...",
190
+ "Icon": {
191
+ "URL": "https://duckduckgo.com/i/6a13b3c7.jpg",
192
+ "Height": "",
193
+ "Width": ""
194
+ },
195
+ "FirstURL": "https://duckduckgo.com/Duck!_The_Carbine_High_Massacre",
196
+ "Text": "Duck! The Carbine High Massacre Duck! The Carbine High Massacre is a 1999 American black comedy crime film about a fictional..."
197
+ },
198
+ {
199
+ "Result": "\"<a href=\"https://duckduckgo.com/?q=Duck!%20%2F%20Aren%27t%20You%20Chupacabra%20To%20See%20Me%3F\">Duck! / Aren't You Chupacabra To See Me?</a>\" An episode of The Grim Adventures of Billy and Mandy.",
200
+ "Icon": {
201
+ "URL": "",
202
+ "Height": "",
203
+ "Width": ""
204
+ },
205
+ "FirstURL": "https://duckduckgo.com/?q=Duck!%20%2F%20Aren%27t%20You%20Chupacabra%20To%20See%20Me%3F",
206
+ "Text": "\"Duck! / Aren't You Chupacabra To See Me? \" An episode of The Grim Adventures of Billy and Mandy."
207
+ }
208
+ ],
209
+ "Name": "Film and television"
210
+ },
211
+ {
212
+ "Topics": [
213
+ {
214
+ "Result": "<a href=\"https://duckduckgo.com/American_Canyon_Transit\">American Canyon Transit</a> Also known as \"The Duck\".",
215
+ "Icon": {
216
+ "URL": "",
217
+ "Height": "",
218
+ "Width": ""
219
+ },
220
+ "FirstURL": "https://duckduckgo.com/American_Canyon_Transit",
221
+ "Text": "American Canyon Transit Also known as \"The Duck\"."
222
+ },
223
+ {
224
+ "Result": "<a href=\"https://duckduckgo.com/Citro%C3%ABn_2CV\">Citro\u00ebn 2CV</a>A front-engine, front wheel drive, air-cooled economy car introduced at the 1948 Paris Mondial de...",
225
+ "Icon": {
226
+ "URL": "https://duckduckgo.com/i/c8f13d0e.jpg",
227
+ "Height": "",
228
+ "Width": ""
229
+ },
230
+ "FirstURL": "https://duckduckgo.com/Citro%C3%ABn_2CV",
231
+ "Text": "Citro\u00ebn 2CV A front-engine, front wheel drive, air-cooled economy car introduced at the 1948 Paris Mondial de..."
232
+ },
233
+ {
234
+ "Result": "<a href=\"https://duckduckgo.com/Ducati\">Ducati</a>Ducati Motor Holding S.p.A. is an Italian company that designs and manufactures motorcycles.",
235
+ "Icon": {
236
+ "URL": "https://duckduckgo.com/i/8d3cf6a1.png",
237
+ "Height": "",
238
+ "Width": ""
239
+ },
240
+ "FirstURL": "https://duckduckgo.com/Ducati",
241
+ "Text": "Ducati Ducati Motor Holding S.p.A. is an Italian company that designs and manufactures motorcycles."
242
+ },
243
+ {
244
+ "Result": "<a href=\"https://duckduckgo.com/Goodyear_Duck\">Goodyear Duck</a>A 1940s American three-seat light amphibian built by the Goodyear Aircraft Corporation.",
245
+ "Icon": {
246
+ "URL": "https://duckduckgo.com/i/de61505a.jpg",
247
+ "Height": "",
248
+ "Width": ""
249
+ },
250
+ "FirstURL": "https://duckduckgo.com/Goodyear_Duck",
251
+ "Text": "Goodyear Duck A 1940s American three-seat light amphibian built by the Goodyear Aircraft Corporation."
252
+ },
253
+ {
254
+ "Result": "<a href=\"https://duckduckgo.com/Grumman_JF_Duck\">Grumman JF Duck</a>An American single-engine amphibious biplane built by Grumman for the United States Navy during...",
255
+ "Icon": {
256
+ "URL": "https://duckduckgo.com/i/2c5adae4.jpg",
257
+ "Height": "",
258
+ "Width": ""
259
+ },
260
+ "FirstURL": "https://duckduckgo.com/Grumman_JF_Duck",
261
+ "Text": "Grumman JF Duck An American single-engine amphibious biplane built by Grumman for the United States Navy during..."
262
+ },
263
+ {
264
+ "Result": "<a href=\"https://duckduckgo.com/grumman_J2F_Duck\">J2F Duck</a>An American single-engine amphibious biplane.",
265
+ "Icon": {
266
+ "URL": "",
267
+ "Height": "",
268
+ "Width": ""
269
+ },
270
+ "FirstURL": "https://duckduckgo.com/grumman_J2F_Duck",
271
+ "Text": "J2F Duck An American single-engine amphibious biplane."
272
+ },
273
+ {
274
+ "Result": "<a href=\"https://duckduckgo.com/DUKW\">DUKW</a>A six-wheel-drive amphibious modification of the 2\u00bd ton CCKW trucks used by the U.S. military in...",
275
+ "Icon": {
276
+ "URL": "https://duckduckgo.com/i/ccdc1c68.jpg",
277
+ "Height": "",
278
+ "Width": ""
279
+ },
280
+ "FirstURL": "https://duckduckgo.com/DUKW",
281
+ "Text": "DUKW A six-wheel-drive amphibious modification of the 2\u00bd ton CCKW trucks used by the U.S. military in..."
282
+ }
283
+ ],
284
+ "Name": "Transportation"
285
+ },
286
+ {
287
+ "Topics": [
288
+ {
289
+ "Result": "<a href=\"https://duckduckgo.com/On2_Technologies\">On2 Technologies</a>A small publicly traded company, founded in 1992 and headquartered in Clifton Park, New York...",
290
+ "Icon": {
291
+ "URL": "https://duckduckgo.com/i/d28b5ff4.png",
292
+ "Height": "",
293
+ "Width": ""
294
+ },
295
+ "FirstURL": "https://duckduckgo.com/On2_Technologies",
296
+ "Text": "On2 Technologies A small publicly traded company, founded in 1992 and headquartered in Clifton Park, New York..."
297
+ },
298
+ {
299
+ "Result": "<a href=\"https://duckduckgo.com/Duck_Records\">Duck Records</a>The record label of Eric Clapton which has issued his releases since 1983.",
300
+ "Icon": {
301
+ "URL": "",
302
+ "Height": "",
303
+ "Width": ""
304
+ },
305
+ "FirstURL": "https://duckduckgo.com/Duck_Records",
306
+ "Text": "Duck Records The record label of Eric Clapton which has issued his releases since 1983."
307
+ },
308
+ {
309
+ "Result": "<a href=\"https://duckduckgo.com/Duck_Studios\">Duck Studios</a>A production studio based in Los Angeles, California.",
310
+ "Icon": {
311
+ "URL": "https://duckduckgo.com/i/437ccbb8.png",
312
+ "Height": "",
313
+ "Width": ""
314
+ },
315
+ "FirstURL": "https://duckduckgo.com/Duck_Studios",
316
+ "Text": "Duck Studios A production studio based in Los Angeles, California."
317
+ }
318
+ ],
319
+ "Name": "Businesses"
320
+ },
321
+ {
322
+ "Topics": [
323
+ {
324
+ "Result": "<a href=\"https://duckduckgo.com/Duck_(food)\">Duck (food)</a>In food terminology, duck refers to duck meat, the meat of several species of bird in the family...",
325
+ "Icon": {
326
+ "URL": "https://duckduckgo.com/i/7bceb8fc.jpg",
327
+ "Height": "",
328
+ "Width": ""
329
+ },
330
+ "FirstURL": "https://duckduckgo.com/Duck_(food)",
331
+ "Text": "Duck (food) In food terminology, duck refers to duck meat, the meat of several species of bird in the family..."
332
+ },
333
+ {
334
+ "Result": "<a href=\"https://duckduckgo.com/Cotton_duck\">Cotton duck</a>A heavy, plain woven cotton fabric. Duck canvas is more tightly woven than plain canvas.",
335
+ "Icon": {
336
+ "URL": "https://duckduckgo.com/i/48a2ddf0.jpg",
337
+ "Height": "",
338
+ "Width": ""
339
+ },
340
+ "FirstURL": "https://duckduckgo.com/Cotton_duck",
341
+ "Text": "Cotton duck A heavy, plain woven cotton fabric. Duck canvas is more tightly woven than plain canvas."
342
+ },
343
+ {
344
+ "Result": "<a href=\"https://duckduckgo.com/Duck_Samford_Stadium\">Duck Samford Stadium</a>A stadium in Auburn, Alabama.",
345
+ "Icon": {
346
+ "URL": "https://duckduckgo.com/i/81cb75cd.jpg",
347
+ "Height": "",
348
+ "Width": ""
349
+ },
350
+ "FirstURL": "https://duckduckgo.com/Duck_Samford_Stadium",
351
+ "Text": "Duck Samford Stadium A stadium in Auburn, Alabama."
352
+ },
353
+ {
354
+ "Result": "<a href=\"https://duckduckgo.com/cairn\">Ducks (hiking)</a> A human-made pile of stones. The word cairn comes from the c\u00e0rn.",
355
+ "Icon": {
356
+ "URL": "https://duckduckgo.com/i/8a9ad1c0.jpg",
357
+ "Height": "",
358
+ "Width": ""
359
+ },
360
+ "FirstURL": "https://duckduckgo.com/cairn",
361
+ "Text": "Ducks (hiking) A human-made pile of stones. The word cairn comes from the c\u00e0rn."
362
+ },
363
+ {
364
+ "Result": "<a href=\"https://duckduckgo.com/Ducking_(slang)\">Ducking (slang)</a>A prison slang term for a technique through which prisoners modify the behavior of correctional...",
365
+ "Icon": {
366
+ "URL": "",
367
+ "Height": "",
368
+ "Width": ""
369
+ },
370
+ "FirstURL": "https://duckduckgo.com/Ducking_(slang)",
371
+ "Text": "Ducking (slang) A prison slang term for a technique through which prisoners modify the behavior of correctional..."
372
+ }
373
+ ],
374
+ "Name": "Other uses"
375
+ },
376
+ {
377
+ "Topics": [
378
+ {
379
+ "Result": "<a href=\"https://duckduckgo.com/d/Duck_(surname)\">Duck (surname) Meanings</a> See related meanings for the phrase 'Duck (surname)'.",
380
+ "Icon": {
381
+ "URL": "",
382
+ "Height": "",
383
+ "Width": ""
384
+ },
385
+ "FirstURL": "https://duckduckgo.com/d/Duck_(surname)",
386
+ "Text": "Duck (surname) Meanings See related meanings for the phrase 'Duck (surname)'."
387
+ },
388
+ {
389
+ "Result": "<a href=\"https://duckduckgo.com/d/Duckie\">Duckie Meanings</a> See related meanings for the word 'Duckie'.",
390
+ "Icon": {
391
+ "URL": "",
392
+ "Height": "",
393
+ "Width": ""
394
+ },
395
+ "FirstURL": "https://duckduckgo.com/d/Duckie",
396
+ "Text": "Duckie Meanings See related meanings for the word 'Duckie'."
397
+ },
398
+ {
399
+ "Result": "<a href=\"https://duckduckgo.com/d/Ducky\">Ducky Meanings</a> See related meanings for the word 'Ducky'.",
400
+ "Icon": {
401
+ "URL": "",
402
+ "Height": "",
403
+ "Width": ""
404
+ },
405
+ "FirstURL": "https://duckduckgo.com/d/Ducky",
406
+ "Text": "Ducky Meanings See related meanings for the word 'Ducky'."
407
+ },
408
+ {
409
+ "Result": "<a href=\"https://duckduckgo.com/d/Duck_Island\">Duck Island Meanings</a> See related meanings for the phrase 'Duck Island'.",
410
+ "Icon": {
411
+ "URL": "",
412
+ "Height": "",
413
+ "Width": ""
414
+ },
415
+ "FirstURL": "https://duckduckgo.com/d/Duck_Island",
416
+ "Text": "Duck Island Meanings See related meanings for the phrase 'Duck Island'."
417
+ },
418
+ {
419
+ "Result": "<a href=\"https://duckduckgo.com/d/Duck_Lake\">Duck Lake Meanings</a> See related meanings for the phrase 'Duck Lake'.",
420
+ "Icon": {
421
+ "URL": "",
422
+ "Height": "",
423
+ "Width": ""
424
+ },
425
+ "FirstURL": "https://duckduckgo.com/d/Duck_Lake",
426
+ "Text": "Duck Lake Meanings See related meanings for the phrase 'Duck Lake'."
427
+ },
428
+ {
429
+ "Result": "<a href=\"https://duckduckgo.com/d/Duck_River\">Duck River Meanings</a> See related meanings for the phrase 'Duck River'.",
430
+ "Icon": {
431
+ "URL": "",
432
+ "Height": "",
433
+ "Width": ""
434
+ },
435
+ "FirstURL": "https://duckduckgo.com/d/Duck_River",
436
+ "Text": "Duck River Meanings See related meanings for the phrase 'Duck River'."
437
+ },
438
+ {
439
+ "Result": "<a href=\"https://duckduckgo.com/d/Duck_Creek\">Duck Creek Meanings</a> See related meanings for the phrase 'Duck Creek'.",
440
+ "Icon": {
441
+ "URL": "",
442
+ "Height": "",
443
+ "Width": ""
444
+ },
445
+ "FirstURL": "https://duckduckgo.com/d/Duck_Creek",
446
+ "Text": "Duck Creek Meanings See related meanings for the phrase 'Duck Creek'."
447
+ }
448
+ ],
449
+ "Name": "See also"
450
+ }
451
+ ],
452
+ "Entity": "",
453
+ "meta": {
454
+ "maintainer": {
455
+ "github": "duckduckgo"
456
+ },
457
+ "perl_module": "DDG::Fathead::Wikipedia",
458
+ "status": "live",
459
+ "production_state": "online",
460
+ "dev_date": null,
461
+ "js_callback_name": "wikipedia",
462
+ "signal_from": "wikipedia_fathead",
463
+ "live_date": null,
464
+ "src_id": 1,
465
+ "src_options": {
466
+ "skip_end": "0",
467
+ "skip_abstract": 0,
468
+ "skip_qr": "",
469
+ "language": "en",
470
+ "skip_icon": 0,
471
+ "skip_image_name": 0,
472
+ "directory": "",
473
+ "min_abstract_length": "20",
474
+ "skip_abstract_paren": 0,
475
+ "is_wikipedia": 1,
476
+ "source_skip": "",
477
+ "is_fanon": 0,
478
+ "is_mediawiki": 1,
479
+ "src_info": ""
480
+ },
481
+ "repo": "fathead",
482
+ "developer": [
483
+ {
484
+ "url": "http://www.duckduckhack.com",
485
+ "name": "DDG Team",
486
+ "type": "ddg"
487
+ }
488
+ ],
489
+ "tab": "About",
490
+ "producer": null,
491
+ "unsafe": 0,
492
+ "id": "wikipedia_fathead",
493
+ "dev_milestone": "live",
494
+ "topic": [
495
+ "productivity"
496
+ ],
497
+ "name": "Wikipedia",
498
+ "attribution": null,
499
+ "created_date": null,
500
+ "example_query": "nikola tesla",
501
+ "description": "Wikipedia",
502
+ "is_stackexchange": null,
503
+ "designer": null,
504
+ "src_domain": "en.wikipedia.org",
505
+ "src_name": "Wikipedia",
506
+ "blockgroup": null,
507
+ "src_url": null
508
+ },
509
+ "Type": "D",
510
+ "Redirect": "",
511
+ "DefinitionURL": "",
512
+ "AbstractURL": "https://en.wikipedia.org/wiki/Duck_(disambiguation)",
513
+ "Definition": "",
514
+ "AbstractSource": "Wikipedia",
515
+ "Infobox": "",
516
+ "Image": "",
517
+ "ImageIsLogo": 0,
518
+ "Abstract": "",
519
+ "AbstractText": "",
520
+ "AnswerType": "",
521
+ "ImageHeight": 0,
522
+ "Answer": "",
523
+ "Results": []
524
+ }
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+ # require 'onewheel-duckduckgo'
3
+
4
+ describe Lita::Handlers::OnewheelDuckDuckGo, lita_handler: true do
5
+
6
+ before(:each) do
7
+ mock_result_json = File.open('spec/fixtures/mock_result.json').read
8
+ allow(RestClient).to receive(:get).and_return(JSON.parse mock_result_json)
9
+ end
10
+
11
+ it { is_expected.to route_command('duck something') }
12
+
13
+ it 'does neat ducky things' do
14
+ send_command 'duck yo'
15
+ expect(replies.last).to include("DuckDuckGo Result: DuckDuckGo is an Internet search engine that emphasizes")
16
+ end
17
+ end
@@ -0,0 +1,14 @@
1
+ require 'simplecov'
2
+ require 'coveralls'
3
+ SimpleCov.formatters = [
4
+ SimpleCov::Formatter::HTMLFormatter,
5
+ Coveralls::SimpleCov::Formatter
6
+ ]
7
+ SimpleCov.start { add_filter '/spec/' }
8
+
9
+ require 'lita-onewheel-duckduckgo'
10
+ require 'lita/rspec'
11
+
12
+ # A compatibility mode is provided for older plugins upgrading from Lita 3. Since this plugin
13
+ # was generated with Lita 4, the compatibility mode should be left disabled.
14
+ Lita.version_3_compatibility_mode = false
metadata ADDED
@@ -0,0 +1,173 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lita-onewheel-duckduckgo
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Andrew Kreps
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-01-16 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: lita
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '4'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '4'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rest-client
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '10'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '10'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rack-test
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.6'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.6'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '3'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '3'
97
+ - !ruby/object:Gem::Dependency
98
+ name: simplecov
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.10'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.10'
111
+ - !ruby/object:Gem::Dependency
112
+ name: coveralls
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '0.8'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '0.8'
125
+ description: Lita handler for Duck Duck Go's answers engine.
126
+ email:
127
+ - andrew.kreps@gmail.com
128
+ executables: []
129
+ extensions: []
130
+ extra_rdoc_files: []
131
+ files:
132
+ - ".gitignore"
133
+ - ".travis.yml"
134
+ - Gemfile
135
+ - README.rst
136
+ - Rakefile
137
+ - lib/lita-onewheel-duckduckgo.rb
138
+ - lib/lita/handlers/onewheel_duckduckgo.rb
139
+ - lita-onewheel-duckduckgo.gemspec
140
+ - spec/fixtures/mock_result.json
141
+ - spec/fixtures/x.json
142
+ - spec/lita/handlers/onewheel_duckduckgo_spec.rb
143
+ - spec/spec_helper.rb
144
+ homepage: https://github.com/onewheelskyward/lita-onewheel-duckduckgo
145
+ licenses:
146
+ - MIT
147
+ metadata:
148
+ lita_plugin_type: handler
149
+ post_install_message:
150
+ rdoc_options: []
151
+ require_paths:
152
+ - lib
153
+ required_ruby_version: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ required_rubygems_version: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: '0'
163
+ requirements: []
164
+ rubyforge_project:
165
+ rubygems_version: 2.5.2
166
+ signing_key:
167
+ specification_version: 4
168
+ summary: Duck Duck Goose
169
+ test_files:
170
+ - spec/fixtures/mock_result.json
171
+ - spec/fixtures/x.json
172
+ - spec/lita/handlers/onewheel_duckduckgo_spec.rb
173
+ - spec/spec_helper.rb