|
28 | 28 |
|
29 | 29 | require 'digest/md5'
|
30 | 30 |
|
31 |
| -require 'async/logger' |
32 | 31 | require 'async/http/client'
|
33 | 32 | require 'async/dns/extensions/string'
|
34 |
| -require 'async/http/url_endpoint' |
| 33 | +require 'async/http/endpoint' |
35 | 34 |
|
36 | 35 | # Encapsulates the logic for fetching information from Wikipedia.
|
37 | 36 | module Wikipedia
|
38 |
| - ENDPOINT = Async::HTTP::URLEndpoint.parse("https://en.wikipedia.org") |
| 37 | + ENDPOINT = Async::HTTP::Endpoint.parse("https://en.wikipedia.org") |
39 | 38 |
|
40 | 39 | def self.lookup(title, logger: nil)
|
41 |
| - client = Async::HTTP::Client.new([ENDPOINT]) |
| 40 | + client = Async::HTTP::Client.new(ENDPOINT) |
42 | 41 | url = self.summary_url(title)
|
43 | 42 |
|
44 |
| - logger&.info "Making request to #{ENDPOINT} for #{url}." |
45 |
| - response = client.get(url, {'Host' => ENDPOINT.hostname}) |
46 |
| - logger&.info "Got response #{response.inspect}." |
| 43 | + logger&.debug "Making request to #{ENDPOINT} for #{url}." |
| 44 | + response = client.get(url, headers: {"user-agent" => "RubyDNS"}) |
| 45 | + logger&.debug "Got response #{response.inspect}." |
47 | 46 |
|
48 | 47 | if response.status == 301
|
49 |
| - return lookup(response.headers['HTTP_LOCATION']) |
| 48 | + return lookup(response.headers['location'], logger: logger) |
50 | 49 | else
|
51 |
| - return self.extract_summary(response.body).force_encoding('ASCII-8BIT') |
| 50 | + return self.extract_summary(response.body.read).force_encoding('ASCII-8BIT') |
52 | 51 | end
|
| 52 | + ensure |
| 53 | + response&.close |
| 54 | + client&.close |
53 | 55 | end
|
54 | 56 |
|
55 | 57 | def self.summary_url(title)
|
@@ -87,12 +89,6 @@ def startup
|
87 | 89 | on(:start) do
|
88 | 90 | # Process::Daemon::Privileges.change_user(RUN_AS)
|
89 | 91 |
|
90 |
| - if ARGV.include?('--debug') |
91 |
| - @logger.level = Logger::DEBUG |
92 |
| - else |
93 |
| - @logger.level = Logger::WARN |
94 |
| - end |
95 |
| - |
96 | 92 | @logger.info "Starting Wikipedia DNS..."
|
97 | 93 | end
|
98 | 94 |
|
|
0 commit comments