From 1d23df37d86cc5cb6d7d9efaaf4360ecc9a9796f Mon Sep 17 00:00:00 2001
From: Nutomic <me@nutomic.com>
Date: Mon, 13 Nov 2023 15:19:09 +0100
Subject: [PATCH] Rename cache_remote_images setting to
 cache_external_link_previews (ref #4035) (#4148)

---
 config/defaults.hjson                | 11 +++++++++--
 crates/api_common/src/request.rs     |  2 +-
 crates/utils/src/settings/structs.rs | 11 +++++++++--
 3 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/config/defaults.hjson b/config/defaults.hjson
index 46e4e0a41..04e34f978 100644
--- a/config/defaults.hjson
+++ b/config/defaults.hjson
@@ -43,8 +43,15 @@
     url: "http://localhost:8080/"
     # Set a custom pictrs API key. ( Required for deleting images )
     api_key: "string"
-    # Cache remote images
-    cache_remote_images: true
+    # By default the thumbnails for external links are stored in pict-rs. This ensures that they
+    # can be reliably retrieved and can be resized using pict-rs APIs. However it also increases
+    # storage usage. In case this is disabled, the Opengraph image is directly returned as
+    # thumbnail.
+    # 
+    # In some countries it is forbidden to copy preview images from newspaper articles and only
+    # hotlinking is allowed. If that is the case for your instance, make sure that this setting is
+    # disabled.
+    cache_external_link_previews: true
   }
   # Email sending configuration. All options except login/password are mandatory
   email: {
diff --git a/crates/api_common/src/request.rs b/crates/api_common/src/request.rs
index 11ef4002e..e4de2e751 100644
--- a/crates/api_common/src/request.rs
+++ b/crates/api_common/src/request.rs
@@ -124,7 +124,7 @@ pub(crate) async fn fetch_pictrs(
   let pictrs_config = settings.pictrs_config()?;
   is_image_content_type(client, image_url).await?;
 
-  if pictrs_config.cache_remote_images {
+  if pictrs_config.cache_external_link_previews {
     // fetch remote non-pictrs images for persistent thumbnail link
     let fetch_url = format!(
       "{}image/download?url={}",
diff --git a/crates/utils/src/settings/structs.rs b/crates/utils/src/settings/structs.rs
index a31b3605e..3664417be 100644
--- a/crates/utils/src/settings/structs.rs
+++ b/crates/utils/src/settings/structs.rs
@@ -79,9 +79,16 @@ pub struct PictrsConfig {
   #[default(None)]
   pub api_key: Option<String>,
 
-  /// Cache remote images
+  /// By default the thumbnails for external links are stored in pict-rs. This ensures that they
+  /// can be reliably retrieved and can be resized using pict-rs APIs. However it also increases
+  /// storage usage. In case this is disabled, the Opengraph image is directly returned as
+  /// thumbnail.
+  ///
+  /// In some countries it is forbidden to copy preview images from newspaper articles and only
+  /// hotlinking is allowed. If that is the case for your instance, make sure that this setting is
+  /// disabled.
   #[default(true)]
-  pub cache_remote_images: bool,
+  pub cache_external_link_previews: bool,
 }
 
 #[derive(Debug, Deserialize, Serialize, Clone, SmartDefault, Document)]
-- 
GitLab