diff --git a/app/logical/sources/strategies/art_station.rb b/app/logical/sources/strategies/art_station.rb index 1c4d32b56..4703956e7 100644 --- a/app/logical/sources/strategies/art_station.rb +++ b/app/logical/sources/strategies/art_station.rb @@ -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 diff --git a/app/logical/sources/strategies/deviant_art.rb b/app/logical/sources/strategies/deviant_art.rb index c855b0741..24fb7b400 100644 --- a/app/logical/sources/strategies/deviant_art.rb +++ b/app/logical/sources/strategies/deviant_art.rb @@ -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) diff --git a/app/logical/sources/strategies/hentai_foundry.rb b/app/logical/sources/strategies/hentai_foundry.rb index 041fb8df2..405506f98 100644 --- a/app/logical/sources/strategies/hentai_foundry.rb +++ b/app/logical/sources/strategies/hentai_foundry.rb @@ -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 diff --git a/app/logical/sources/strategies/moebooru.rb b/app/logical/sources/strategies/moebooru.rb index 4a47b8d54..9c94a3a5c 100644 --- a/app/logical/sources/strategies/moebooru.rb +++ b/app/logical/sources/strategies/moebooru.rb @@ -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 diff --git a/app/logical/sources/strategies/newgrounds.rb b/app/logical/sources/strategies/newgrounds.rb index 0fefba41d..5bd00fa7c 100644 --- a/app/logical/sources/strategies/newgrounds.rb +++ b/app/logical/sources/strategies/newgrounds.rb @@ -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 diff --git a/app/logical/sources/strategies/nijie.rb b/app/logical/sources/strategies/nijie.rb index cf564e6f1..96d26ddc2 100644 --- a/app/logical/sources/strategies/nijie.rb +++ b/app/logical/sources/strategies/nijie.rb @@ -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 diff --git a/app/logical/sources/strategies/tumblr.rb b/app/logical/sources/strategies/tumblr.rb index 311a5fffe..42de650df 100644 --- a/app/logical/sources/strategies/tumblr.rb +++ b/app/logical/sources/strategies/tumblr.rb @@ -28,11 +28,6 @@ module Sources::Strategies VIDEO = %r{\Ahttps?://(?:vtt|ve|va\.media)\.tumblr\.com/}i POST = %r{\Ahttps?://(?[^.]+)\.tumblr\.com/(?:post|image)/(?\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 } ) diff --git a/app/logical/sources/strategies/weibo.rb b/app/logical/sources/strategies/weibo.rb index eaac6e40f..4daf5e69e 100644 --- a/app/logical/sources/strategies/weibo.rb +++ b/app/logical/sources/strategies/weibo.rb @@ -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?