diff options
author | Oneric <oneric@oneric.stub> | 2024-03-26 15:44:44 -0100 |
---|---|---|
committer | Lain Soykaf <lain@lain.com> | 2025-03-01 17:26:46 +0400 |
commit | 13a88bd1a5a13c771d33d327d54125c68bbb9cb3 (patch) | |
tree | bf374257e7df125b98801a3cf2b5f759d1e3c0ee | |
parent | 706bfffcda001236cd5df3012b745800d1b88756 (diff) | |
download | pleroma-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.exs | 5 | ||||
-rw-r--r-- | test/pleroma/web/activity_pub/object_validators/attachment_validator_test.exs | 17 |
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" => "", |