diff --git a/common/config/conf_domain.go b/common/config/conf_domain.go index a3fb44fe8536e124882bf765a0d5f49379610f49..ac1747206e993eaa77249fbfc01c29f6854acb23 100644 --- a/common/config/conf_domain.go +++ b/common/config/conf_domain.go @@ -46,6 +46,7 @@ func NewDefaultDomainConfig() DomainRepoConfig { "0.0.0.0/0", // "Everything" }, DefaultLanguage: "en-US,en", + UserAgent: "matrix-media-repo", OEmbed: false, }, Thumbnails: ThumbnailsConfig{ diff --git a/common/config/conf_main.go b/common/config/conf_main.go index 4697f2a6e3b8a3e11c2077715d4c22390e7c2fca..7e96d8c39b13430c8a3b09b211b8f57549caec6f 100644 --- a/common/config/conf_main.go +++ b/common/config/conf_main.go @@ -73,6 +73,7 @@ func NewDefaultMainConfig() MainRepoConfig { "0.0.0.0/0", // "Everything" }, DefaultLanguage: "en-US,en", + UserAgent: "matrix-media-repo", OEmbed: false, }, NumWorkers: 10, diff --git a/common/config/models_domain.go b/common/config/models_domain.go index 14ef0f30eb5c0aeeb8dbc4f991f114bd6e40d801..1b1c74a635c3005e56ae79197749672af5e1b574 100644 --- a/common/config/models_domain.go +++ b/common/config/models_domain.go @@ -64,6 +64,7 @@ type UrlPreviewsConfig struct { AllowedNetworks []string `yaml:"allowedNetworks,flow"` UnsafeCertificates bool `yaml:"previewUnsafeCertificates"` DefaultLanguage string `yaml:"defaultLanguage"` + UserAgent string `yaml:"userAgent"` OEmbed bool `yaml:"oEmbed"` } diff --git a/config.sample.yaml b/config.sample.yaml index 5fa6d641f9b5cea8b0ef9586c5da5e1046767577..8fc5c62cce2d5c3b09d0542d4bf166847d10c8e7 100644 --- a/config.sample.yaml +++ b/config.sample.yaml @@ -320,6 +320,9 @@ urlPreviews: # Reference: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language defaultLanguage: "en-US,en" + # Set the User-Agent header to supply when generating URL previews + userAgent: "matrix-media-repo" + # When true, oEmbed previews will be enabled. Typically these kinds of previews are used for # sites that do not support OpenGraph or page scraping, such as Twitter. For information on # specifying providers for oEmbed, including your own, see the following documentation: diff --git a/controllers/preview_controller/previewers/http.go b/controllers/preview_controller/previewers/http.go index 7d566241be31611b16ef54739beeee96b41137ee..7c6deb96104723cfc70acc0c61e457f6cf627806 100644 --- a/controllers/preview_controller/previewers/http.go +++ b/controllers/preview_controller/previewers/http.go @@ -118,7 +118,7 @@ func doHttpGet(urlPayload *preview_types.UrlPayload, languageHeader string, ctx if err != nil { return nil, err } - req.Header.Set("User-Agent", "matrix-media-repo") + req.Header.Set("User-Agent", ctx.Config.UrlPreviews.UserAgent) req.Header.Set("Accept-Language", languageHeader) return client.Do(req) }