http: split requests into internal and external requests.

Split requests made by Danbooru::Http into either internal or external
requests. Internal requests are API calls to internal services run by
Danbooru. External requests are requests to external websites, for
example fetching sources or downloading files. External requests may use
a HTTP proxy if one is configured. Internal requests don't.

Fixes a few source extractors not using the HTTP proxy for certain API calls.
This commit is contained in:
evazion
2022-10-18 22:38:19 -05:00
parent 4001701d18
commit 412b7f2727
17 changed files with 38 additions and 29 deletions

View File

@@ -189,10 +189,7 @@ module Source
memoize :uuid
def api_client
api_client = DeviantArtApiClient.new(
Danbooru.config.deviantart_client_id,
Danbooru.config.deviantart_client_secret
)
api_client = DeviantArtApiClient.new(Danbooru.config.deviantart_client_id, Danbooru.config.deviantart_client_secret, http)
api_client.access_token = Cache.get("da-access-token", 11.weeks) do
api_client.access_token.to_hash
end

View File

@@ -157,7 +157,7 @@ class Source::Extractor
end
def http
Danbooru::Http.new.cookies(_session_id: Danbooru.config.fantia_session_id)
super.cookies(_session_id: Danbooru.config.fantia_session_id)
end
end
end

View File

@@ -67,7 +67,7 @@ class Source::Extractor
end
def http
Danbooru::Http.new.cookies(a: Danbooru.config.furaffinity_cookie_a, b: Danbooru.config.furaffinity_cookie_b, sfw: 0)
super.cookies(a: Danbooru.config.furaffinity_cookie_a, b: Danbooru.config.furaffinity_cookie_b, sfw: 0)
end
end
end

View File

@@ -130,7 +130,7 @@ class Source::Extractor
end
def api_client
TwitterApiClient.new(Danbooru.config.twitter_api_key, Danbooru.config.twitter_api_secret)
TwitterApiClient.new(Danbooru.config.twitter_api_key, Danbooru.config.twitter_api_secret, http: http)
end
def api_response