|
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