* Add a `Danbooru.config.http_headers` config option. * Refactor various places to use this option instead of setting the user agent manually.
30 lines
1.1 KiB
Ruby
30 lines
1.1 KiB
Ruby
# This is a collection of strategies for normalizing URLs. Most strategies
|
|
# typically work by parsing and rewriting the URL itself, but some strategies
|
|
# may delegate to Sources::Strategies to obtain a more canonical URL.
|
|
|
|
module Downloads
|
|
module RewriteStrategies
|
|
class Base
|
|
attr_reader :url
|
|
|
|
def initialize(url = nil)
|
|
@url = url
|
|
end
|
|
|
|
def self.strategies
|
|
[Downloads::RewriteStrategies::Pixiv, Downloads::RewriteStrategies::NicoSeiga, Downloads::RewriteStrategies::ArtStation, Downloads::RewriteStrategies::Twitpic, Downloads::RewriteStrategies::DeviantArt, Downloads::RewriteStrategies::Tumblr, Downloads::RewriteStrategies::Moebooru, Downloads::RewriteStrategies::Twitter, Downloads::RewriteStrategies::Nijie, Downloads::RewriteStrategies::Pawoo]
|
|
end
|
|
|
|
def rewrite(url, headers, data = {})
|
|
return [url, headers, data]
|
|
end
|
|
|
|
protected
|
|
def http_exists?(url, headers)
|
|
res = HTTParty.head(url, Danbooru.config.httparty_options.deep_merge(headers: headers))
|
|
res.success?
|
|
end
|
|
end
|
|
end
|
|
end
|