logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git
commit: 65c8763907e28a12bc0a4c1269b5a765006d65b2
parent c16ef40f134e69ad509a52dd3470672ca297f084
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date:   Wed, 29 May 2024 08:00:19 +0200

RichMedia: Add extra checks on configuration

Diffstat:

Mlib/pleroma/web/rich_media/card.ex22+++++++++++++---------
Mlib/pleroma/web/rich_media/parser.ex6+++++-
2 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/lib/pleroma/web/rich_media/card.ex b/lib/pleroma/web/rich_media/card.ex @@ -77,19 +77,23 @@ defmodule Pleroma.Web.RichMedia.Card do @spec get_or_backfill_by_url(String.t(), map()) :: t() | nil def get_or_backfill_by_url(url, backfill_opts \\ %{}) do - case get_by_url(url) do - %__MODULE__{} = card -> - card + if @config_impl.get([:rich_media, :enabled]) do + case get_by_url(url) do + %__MODULE__{} = card -> + card - nil -> - backfill_opts = Map.put(backfill_opts, :url, url) + nil -> + backfill_opts = Map.put(backfill_opts, :url, url) - Backfill.start(backfill_opts) + Backfill.start(backfill_opts) - nil + nil - :error -> - nil + :error -> + nil + end + else + nil end end diff --git a/lib/pleroma/web/rich_media/parser.ex b/lib/pleroma/web/rich_media/parser.ex @@ -15,10 +15,14 @@ defmodule Pleroma.Web.RichMedia.Parser do @spec parse(String.t()) :: {:ok, map()} | {:error, any()} def parse(url) do - with :ok <- validate_page_url(url), + with {_, true} <- {:config, @config_impl.get([:rich_media, :enabled])}, + :ok <- validate_page_url(url), {:ok, data} <- parse_url(url) do data = Map.put(data, "url", url) {:ok, data} + else + {:config, _} -> {:error, :rich_media_disabled} + e -> e end end