feat(core): Add config option for the url preview user agent

This commit is contained in:
Trash Panda 2026-02-13 18:33:39 -07:00 committed by Jade Ellis
parent 9cae531f90
commit 40996a6602
No known key found for this signature in database
GPG key ID: 8705A2A3EBF77BD2
3 changed files with 19 additions and 0 deletions

View file

@ -1474,6 +1474,12 @@
#
#url_preview_check_root_domain = false
# User agent that is used specifically when downloading url previews.
#
# example: "continuwuity (bot; +https://forgejo.ellis.link/continuwuation/continuwuity)"
#
#url_preview_user_agent = "continuwuity/$VERSION ($VERSION_TAG)"
# List of forbidden room aliases and room IDs as strings of regex
# patterns.
#

View file

@ -1696,6 +1696,13 @@ pub struct Config {
#[serde(default)]
pub url_preview_check_root_domain: bool,
/// User agent that is used specifically when downloading url previews.
///
/// example: "continuwuity (bot; +https://forgejo.ellis.link/continuwuation/continuwuity)"
///
/// default: "continuwuity/$VERSION ($VERSION_TAG)"
pub url_preview_user_agent: Option<String>,
/// List of forbidden room aliases and room IDs as strings of regex
/// patterns.
///

View file

@ -36,6 +36,11 @@ impl crate::Service for Service {
.clone()
.and_then(Either::right);
let url_preview_user_agent = config
.url_preview_user_agent
.clone()
.unwrap_or_else(|| conduwuit::version::user_agent().to_string());
Ok(Arc::new(Self {
default: base(config)?
.dns_resolver(resolver.resolver.clone())
@ -49,6 +54,7 @@ impl crate::Service for Service {
.dns_resolver(resolver.resolver.clone())
.timeout(Duration::from_secs(config.url_preview_timeout))
.redirect(redirect::Policy::limited(3))
.user_agent(url_preview_user_agent)
.build()?,
extern_media: base(config)?