|
|
|
@ -1595,7 +1595,9 @@ struct HTTPPool
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def client(region = nil, &block)
|
|
|
|
|
pool.connection do |conn|
|
|
|
|
|
conn = pool.checkout
|
|
|
|
|
|
|
|
|
|
begin
|
|
|
|
|
if region
|
|
|
|
|
PROXY_LIST[region]?.try &.sample(40).each do |proxy|
|
|
|
|
|
begin
|
|
|
|
@ -1607,17 +1609,17 @@ struct HTTPPool
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
begin
|
|
|
|
|
response = yield conn
|
|
|
|
|
conn.unset_proxy
|
|
|
|
|
response
|
|
|
|
|
rescue ex
|
|
|
|
|
conn = HTTPClient.new(url)
|
|
|
|
|
conn.family = (url.host == "www.youtube.com") ? CONFIG.force_resolve : Socket::Family::UNSPEC
|
|
|
|
|
conn.read_timeout = 5.seconds
|
|
|
|
|
conn.connect_timeout = 5.seconds
|
|
|
|
|
yield conn
|
|
|
|
|
end
|
|
|
|
|
response = yield conn
|
|
|
|
|
conn.unset_proxy
|
|
|
|
|
response
|
|
|
|
|
rescue ex
|
|
|
|
|
conn = HTTPClient.new(url)
|
|
|
|
|
conn.family = (url.host == "www.youtube.com") ? CONFIG.force_resolve : Socket::Family::UNSPEC
|
|
|
|
|
conn.read_timeout = 5.seconds
|
|
|
|
|
conn.connect_timeout = 5.seconds
|
|
|
|
|
yield conn
|
|
|
|
|
ensure
|
|
|
|
|
pool.checkin(conn)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|