sources: use http client from base strategy.

This commit is contained in:
evazion
2020-08-17 15:30:01 -05:00
parent e196514de8
commit 160b099445
8 changed files with 12 additions and 17 deletions

View File

@@ -122,7 +122,7 @@ module Sources::Strategies
def api_response
return {} if project_id.blank?
resp = Danbooru::Http.cache(1.minute).get("https://www.artstation.com/projects/#{project_id}.json")
resp = http.cache(1.minute).get("https://www.artstation.com/projects/#{project_id}.json")
return {} if resp.code != 200
resp.parse.with_indifferent_access

View File

@@ -266,7 +266,7 @@ module Sources
def page
return nil if page_url_from_image_url.blank?
resp = Danbooru::Http.cache(1.minute).get(page_url_from_image_url, follow: {max_hops: 1})
resp = http.cache(1.minute).get(page_url_from_image_url, follow: {max_hops: 1})
if resp.status.success?
Nokogiri::HTML(resp.body.to_s)

View File

@@ -64,7 +64,7 @@ module Sources
def page
return nil if page_url.blank?
response = Danbooru::Http.new.cache(1.minute).get("#{page_url}?enterAgree=1")
response = http.cache(1.minute).get("#{page_url}?enterAgree=1")
return nil unless response.status == 200
response.parse

View File

@@ -113,7 +113,7 @@ module Sources
return {}
end
response = Danbooru::Http.cache(1.minute).get("https://#{site_name}/post.json", params: params)
response = http.cache(1.minute).get("https://#{site_name}/post.json", params: params)
post = response.parse.first&.with_indifferent_access
post || {}
end

View File

@@ -50,7 +50,7 @@ module Sources
def page
return nil if page_url.blank?
response = Danbooru::Http.cache(1.minute).get(page_url)
response = http.cache(1.minute).get(page_url)
return nil if response.status == 404
response.parse

View File

@@ -190,10 +190,10 @@ module Sources
memoize :page
def client
http = Danbooru::Http.new.timeout(60)
nijie = http.timeout(60).use(retriable: { max_retries: 20 })
cookie = Cache.get("nijie-session-cookie", 1.week) do
login_page = http.use(retriable: { max_retries: 20 }).get("https://nijie.info/login.php").parse
login_page = nijie.get("https://nijie.info/login.php").parse
form = {
email: Danbooru.config.nijie_login,
password: Danbooru.config.nijie_password,
@@ -201,14 +201,14 @@ module Sources
save: "on",
ticket: ""
}
response = http.use(retriable: { max_retries: 20 }).post("https://nijie.info/login_int.php", form: form)
response = nijie.post("https://nijie.info/login_int.php", form: form)
DanbooruLogger.info "Nijie login failed (#{url}, #{response.status})" if response.status != 200
return nil unless response.status == 200
response.cookies.select { |c| c.name == "NIJIEIJIEID" }.compact.first
end
http.cookies(NIJIEIJIEID: cookie, R18: 1)
nijie.cookies(NIJIEIJIEID: cookie, R18: 1)
end
memoize :client
end

View File

@@ -28,11 +28,6 @@ module Sources::Strategies
VIDEO = %r{\Ahttps?://(?:vtt|ve|va\.media)\.tumblr\.com/}i
POST = %r{\Ahttps?://(?<blog_name>[^.]+)\.tumblr\.com/(?:post|image)/(?<post_id>\d+)}i
NEW_HEADERS = {
"user-agent": Danbooru.config.canonical_app_name,
"accept": "text/html"
}
def self.enabled?
Danbooru.config.tumblr_consumer_key.present?
end
@@ -180,7 +175,7 @@ module Sources::Strategies
max_size = Integer.sqrt(Danbooru.config.max_image_resolution)
url = url.gsub(%r{/s\d+x\d+/\w+\.\w+$}i, "/s#{max_size}x#{max_size}/#{$1}")
resp = Danbooru::Http.cache(1.minute).get(url, headers: NEW_HEADERS).parse
resp = http.cache(1.minute).headers(accept: "text/html").get(url).parse
resp.at("img[src*='/s#{max_size}x#{max_size}/']")["src"]
else
url
@@ -204,7 +199,7 @@ module Sources::Strategies
return {} unless self.class.enabled?
return {} unless blog_name.present? && post_id.present?
response = Danbooru::Http.cache(1.minute).get(
response = http.cache(1.minute).get(
"https://api.tumblr.com/v2/blog/#{blog_name}/posts",
params: { id: post_id, api_key: Danbooru.config.tumblr_consumer_key }
)

View File

@@ -205,7 +205,7 @@ module Sources
def api_response
return {} if mobile_url.blank?
resp = Danbooru::Http.cache(1.minute).get(mobile_url)
resp = http.cache(1.minute).get(mobile_url)
json_string = resp.to_s[/var \$render_data = \[(.*)\]\[0\]/m, 1]
return {} if json_string.blank?