duckduckgo 0.1.6 → 0.1.8

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
  SHA256:
3
- metadata.gz: 7576d83d77e18d500c943a78c896c75b1f6ccc15a3132d358e23cca91863c19b
4
- data.tar.gz: 265b003b79d41e122dcd53aa72cc98da34c8af1421228413d58f3ae39b67ee4a
3
+ metadata.gz: 004c997f5b8239486cab70461114e1eca9937b52d399cf211ce8389bb763ca03
4
+ data.tar.gz: b64ae18c13233cf14c4e6ad198f19995265fb02f27a0c4868d6a9ee9f4a4430b
5
5
  SHA512:
6
- metadata.gz: d0f5bf20a3d62fd3eae77b9a92b08733c5f73f9a67f94ee4cb79badea392d1cde5b04785428e5efaaee6b8ea44b7b24ba61fa638a435892248a6a64593bf918a
7
- data.tar.gz: d35b6625e9e349ec102ba16a1a828541fcc075ae620926f8f857cb460164fac8be83e69fe9159ca1b64ad5a0593dbc4aa6bc2e79c41581f44dc07300633f32b3
6
+ metadata.gz: 95b79824f6cbb39b3bda3475b6a5133951f2e9aa43c4ce07ecf6169cfda4d70a9e42f44256e368b931e2cadc95a4435976f1402f880476487e30303bc0c501da
7
+ data.tar.gz: 60f71e23cb3061be4e6210d9b6e543a9c6090a8aa74c3b52838d81d0d528bb4330b62f6e5c3804836c685793d680f94613dda1b877796f305e6dcc59195a36d9
@@ -0,0 +1,17 @@
1
+ on: push
2
+ jobs:
3
+ test:
4
+ runs-on: ubuntu-latest
5
+ strategy:
6
+ matrix:
7
+ ruby-version: ['3.1', '3.0']
8
+ steps:
9
+ - uses: actions/checkout@v4
10
+ - name: Set up Ruby ${{ matrix.ruby-version }}
11
+ uses: ruby/setup-ruby@v1
12
+ with:
13
+ ruby-version: ${{ matrix.ruby-version }}
14
+ - name: Install dependencies
15
+ run: bundle install
16
+ - name: Run tests
17
+ run: bundle exec rake
data/README.md CHANGED
@@ -1,5 +1,4 @@
1
1
  # DuckDuckGo
2
- [![Build Status](https://travis-ci.org/stevesoltys/duckduckgo.svg?branch=master)](https://travis-ci.org/stevesoltys/duckduckgo)
3
2
 
4
3
  An unofficial DuckDuckGo search API.
5
4
 
data/duckduckgo.gemspec CHANGED
@@ -18,9 +18,9 @@ Gem::Specification.new do |spec|
18
18
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_development_dependency 'bundler', '~> 1.16.1'
22
- spec.add_development_dependency 'minitest', '~> 5.11.3'
21
+ spec.add_development_dependency 'bundler'
22
+ spec.add_development_dependency 'minitest'
23
23
  spec.add_development_dependency 'rake', '~> 12.3.1'
24
- spec.add_dependency 'nokogiri', '~> 1.8.2'
24
+ spec.add_dependency 'nokogiri'
25
25
  spec.add_dependency 'open_uri_redirections', '~> 0.2.1'
26
26
  end
@@ -21,11 +21,11 @@ module DuckDuckGo
21
21
  results = []
22
22
 
23
23
  raise 'Hash does not contain a query string.' if hash[:query].nil?
24
- html = open("#{RESOURCE_URL}#{CGI::escape(hash[:query])}")
24
+ html = URI.open("#{RESOURCE_URL}#{CGI::escape(hash[:query])}")
25
25
 
26
26
  document = Nokogiri::HTML(html)
27
27
 
28
- document.css('#links').each do |result|
28
+ document.css('.results_links').each do |result|
29
29
  title_element = result.css('.result__a').first
30
30
  raise 'Could not find result link element!' if title_element.nil?
31
31
 
@@ -35,20 +35,13 @@ module DuckDuckGo
35
35
  uri = title_element['href']
36
36
  raise 'Could not find result URL!' if uri.nil?
37
37
 
38
- # Attempt to follow redirects, since DuckDuckGo often aggregates search results from Yahoo.
39
- begin
40
- final_uri = open(uri, :allow_redirections => :all).base_uri.to_s
41
- rescue
42
- final_uri = uri
43
- end
44
-
45
38
  description_element = result.css('.result__snippet').first
46
39
  raise 'Could not find result description element!' if description_element.nil?
47
40
 
48
41
  description = description_element.text
49
42
  raise 'Could not find result description!' if description.nil?
50
43
 
51
- results << SearchResult.new(final_uri, title, description)
44
+ results << SearchResult.new(uri, title, description)
52
45
  end
53
46
 
54
47
  return results
@@ -1,3 +1,3 @@
1
1
  module DuckDuckGo
2
- VERSION = '0.1.6'
2
+ VERSION = '0.1.8'
3
3
  end
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: duckduckgo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Soltys
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-04-16 00:00:00.000000000 Z
11
+ date: 2024-02-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 1.16.1
19
+ version: '0'
20
20
  type: :development
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: 1.16.1
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: minitest
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 5.11.3
33
+ version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 5.11.3
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -56,16 +56,16 @@ dependencies:
56
56
  name: nokogiri
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 1.8.2
61
+ version: '0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: 1.8.2
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: open_uri_redirections
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -87,8 +87,8 @@ executables: []
87
87
  extensions: []
88
88
  extra_rdoc_files: []
89
89
  files:
90
+ - ".github/workflows/build.yml"
90
91
  - ".gitignore"
91
- - ".travis.yml"
92
92
  - CODE_OF_CONDUCT.md
93
93
  - Gemfile
94
94
  - LICENSE.txt
@@ -120,8 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
120
  - !ruby/object:Gem::Version
121
121
  version: '0'
122
122
  requirements: []
123
- rubyforge_project:
124
- rubygems_version: 2.7.6
123
+ rubygems_version: 3.3.5
125
124
  signing_key:
126
125
  specification_version: 4
127
126
  summary: An unofficial DuckDuckGo search API.
data/.travis.yml DELETED
@@ -1,4 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.1.5
4
- before_install: gem install bundler -v 1.10.6