From d006fd662b4451c6e799b4bbe52fca5f5acf40f4 Mon Sep 17 00:00:00 2001 From: Akinori MUSHA Date: Mon, 18 Aug 2014 16:25:39 +0900 Subject: [PATCH] Show user the correct default User-Agent value. --- app/concerns/web_request_concern.rb | 7 ++++++- app/models/agents/website_agent.rb | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/concerns/web_request_concern.rb b/app/concerns/web_request_concern.rb index 86d7bccb..ebb72d53 100644 --- a/app/concerns/web_request_concern.rb +++ b/app/concerns/web_request_concern.rb @@ -58,7 +58,12 @@ module WebRequestConcern end def user_agent - interpolated['user_agent'].presence || + interpolated['user_agent'].presence || self.class.default_user_agent + end + + module ClassMethods + def default_user_agent ENV.fetch('DEFAULT_HTTP_USER_AGENT', Faraday.new.headers[:user_agent]) + end end end diff --git a/app/models/agents/website_agent.rb b/app/models/agents/website_agent.rb index b2ce30af..d8b6c0a6 100644 --- a/app/models/agents/website_agent.rb +++ b/app/models/agents/website_agent.rb @@ -50,7 +50,7 @@ module Agents Set `force_encoding` to an encoding name if the website does not return a Content-Type header with a proper charset. - Set `user_agent` to a custom User-Agent name if the website does not like the default value ("Faraday v#{Faraday::VERSION}"). + Set `user_agent` to a custom User-Agent name if the website does not like the default value (`#{default_user_agent}`). The `headers` field is optional. When present, it should be a hash of headers to send with the request.