summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOneric <oneric@oneric.stub>2024-03-26 15:44:44 -0100
committerLain Soykaf <lain@lain.com>2025-03-01 17:26:46 +0400
commit13a88bd1a5a13c771d33d327d54125c68bbb9cb3 (patch)
treebf374257e7df125b98801a3cf2b5f759d1e3c0ee
parent706bfffcda001236cd5df3012b745800d1b88756 (diff)
downloadpleroma-13a88bd1a5a13c771d33d327d54125c68bbb9cb3.tar.gz
pleroma-13a88bd1a5a13c771d33d327d54125c68bbb9cb3.zip
Register APNG MIME type
The newest git HEAD of MIME already knows about APNG, but this hasn’t been released yet. Without this, APNG attachments from remote posts won’t display as images in frontends. Fixes: akkoma#657
-rw-r--r--config/config.exs5
-rw-r--r--test/pleroma/web/activity_pub/object_validators/attachment_validator_test.exs17
2 files changed, 21 insertions, 1 deletions
diff --git a/config/config.exs b/config/config.exs
index e82448f7c..400a80345 100644
--- a/config/config.exs
+++ b/config/config.exs
@@ -150,7 +150,10 @@ config :mime, :types, %{
"application/xrd+xml" => ["xrd+xml"],
"application/jrd+json" => ["jrd+json"],
"application/activity+json" => ["activity+json"],
- "application/ld+json" => ["activity+json"]
+ "application/ld+json" => ["activity+json"],
+ # Can be removed when bumping MIME past 2.0.5
+ # see https://akkoma.dev/AkkomaGang/akkoma/issues/657
+ "image/apng" => ["apng"]
}
config :tesla, adapter: Tesla.Adapter.Hackney
diff --git a/test/pleroma/web/activity_pub/object_validators/attachment_validator_test.exs b/test/pleroma/web/activity_pub/object_validators/attachment_validator_test.exs
index 6627fa6db..744ae8704 100644
--- a/test/pleroma/web/activity_pub/object_validators/attachment_validator_test.exs
+++ b/test/pleroma/web/activity_pub/object_validators/attachment_validator_test.exs
@@ -13,6 +13,23 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidatorTest do
import Pleroma.Factory
describe "attachments" do
+ test "works with apng" do
+ attachment =
+ %{
+ "mediaType" => "image/apng",
+ "name" => "",
+ "type" => "Document",
+ "url" =>
+ "https://media.misskeyusercontent.com/io/2859c26e-cd43-4550-848b-b6243bc3fe28.apng"
+ }
+
+ assert {:ok, attachment} =
+ AttachmentValidator.cast_and_validate(attachment)
+ |> Ecto.Changeset.apply_action(:insert)
+
+ assert attachment.mediaType == "image/apng"
+ end
+
test "fails without url" do
attachment = %{
"mediaType" => "",