diff options
author | lain <lain@soykaf.club> | 2023-05-30 08:04:23 +0000 |
---|---|---|
committer | lain <lain@soykaf.club> | 2023-05-30 08:04:23 +0000 |
commit | da6b4003acad84b0f60ad8da6d08cfe13564b058 (patch) | |
tree | 9f193a68ff62feb27f3c37888ed2cf1722586301 /lib | |
parent | 31ec5cd35eece97aa1213c401b40d3ab83689ea9 (diff) | |
parent | 50a20f3bbd1203679c9295eb6002225dd630baf8 (diff) | |
download | pleroma-da6b4003acad84b0f60ad8da6d08cfe13564b058.tar.gz pleroma-da6b4003acad84b0f60ad8da6d08cfe13564b058.zip |
Merge branch 'only_media_filter' into 'develop'
Add OnlyMedia Upload Filter
See merge request pleroma/pleroma!3897
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/upload/filter.ex | 6 | ||||
-rw-r--r-- | lib/pleroma/upload/filter/only_media.ex | 20 |
2 files changed, 23 insertions, 3 deletions
diff --git a/lib/pleroma/upload/filter.ex b/lib/pleroma/upload/filter.ex index 717f06621..809bc6e70 100644 --- a/lib/pleroma/upload/filter.ex +++ b/lib/pleroma/upload/filter.ex @@ -38,9 +38,9 @@ defmodule Pleroma.Upload.Filter do {:ok, :noop} -> filter(rest, upload) - error -> - Logger.error("#{__MODULE__}: Filter #{filter} failed: #{inspect(error)}") - error + {:error, e} -> + Logger.error("#{__MODULE__}: Filter #{filter} failed: #{inspect(e)}") + {:error, e} end end end diff --git a/lib/pleroma/upload/filter/only_media.ex b/lib/pleroma/upload/filter/only_media.ex new file mode 100644 index 000000000..a9caeba67 --- /dev/null +++ b/lib/pleroma/upload/filter/only_media.ex @@ -0,0 +1,20 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2023 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Upload.Filter.OnlyMedia do + @behaviour Pleroma.Upload.Filter + alias Pleroma.Upload + + def filter(%Upload{content_type: content_type}) do + [type, _subtype] = String.split(content_type, "/") + + if type in ["image", "video", "audio"] do + {:ok, :noop} + else + {:error, "Disallowed content-type: #{content_type}"} + end + end + + def filter(_), do: {:ok, :noop} +end |